Vraag MySQL-bestanden herstellen naar nieuwe schijf 14.04 - rechten?


Ik herbouw mijn computer met een nieuwe schijf en heb een back-up van mijn MySQL-db's - ik heb ze verplaatst naar / var / lib / mysql en wanneer ik het probeer:

sudo /etc/init.d/mysql start

MySQL weigert te starten - het foutenlogboek toont deze fout hieronder. Ik veronderstel dat mijn perms op / var / lib / mysql verkeerd zijn, maar ik weet niet zeker hoe verder te gaan.

140421 12:03:59 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140421 12:03:59 InnoDB: Compressed tables use zlib 1.2.8
140421 12:03:59 InnoDB: Using Linux native AIO
140421 12:03:59 InnoDB: Initializing buffer pool, size = 128.0M
140421 12:03:59 InnoDB: Completed initialization of buffer pool
140421 12:03:59  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

Erg bedankt...


0
2018-04-21 00:08


oorsprong


Dit lijkt voor mij te werken - ik vermoed dat het gepast is? sudo chown -R mysql:mysql /var/lib/mysql/  Ik krijg nog altijd een fout bij het starten (db's zijn aanwezig en zichtbaar) .. ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES) - Staple


antwoorden:


Machtigingen (specifiek eigendom) kunnen een probleem zijn, in welk geval ze kunnen worden gecorrigeerd naar de standaard door te doen:

sudo chown -R mysql:mysql /var/lib/mysql

Uiteraard wijzigt u de gebruikersnaam (de eerste mysql in die opdracht) en de groep (de tweede) als u uw gebruiker / groep hebt bewerkt die MySQL uitvoert.

Ik wil echter opmerken dat het maken van back-ups van onbewerkte bestanden over het algemeen wordt afgeraden bij het migreren. Het gebruik van de opdracht mysqldump heeft over het algemeen de voorkeur, omdat het wordt uitgevoerd naar een tekstbestand met behulp van SQL, dat netjes kan worden geïmporteerd en uitgevoerd door de nieuwe versie.

Tussen 12.04 en 14.04 zul je waarschijnlijk niet al te veel problemen zien, maar meer dramatische veranderingen kunnen soms een probleem zijn. Bijvoorbeeld, in sommige eerdere upgrades veranderde de manier waarop gebruikersnamen hashed drastisch, en het gebruik van oudere onbewerkte bestanden vereiste een speciale configuratieoptie die niet kon worden opgelost zonder speciale tools of commando's te gebruiken.


1
2018-04-21 00:15



Bedankt @ k-darien-freeheart! Dit is precies hoe ik een soortgelijk probleem aan mijn einde op te lossen in de mysql Docker-container. Op een of andere manier waren de machtigingen uitgeschakeld, waardoor ze allemaal werden opgelost mysql:mysql heeft het gedaan! Ik ben blij dat ik alle gegevens heb teruggevonden. Tussen haakjes, blijkbaar restorecon -R /var/lib/mysql/ of chcon -R --type=mysql_db_t /var/lib/mysql werkte niet voor Ubuntu gebaseerde distro. - Devy
Dat is correct. Die commando's voor voor SELinux, die Ubuntu niet gebruikt. Ubuntu gebruikt AppArmor voor extra beveiligingscontexten. - K. Darien Freeheart