Ich benutze MySQL 5.7 und CentOS 7.2.MySQL 5.7 ändern datadir
Zuerst meine datadir Konfiguration in my.cnf/var/lib/mysql
Jetzt möchte ich datadir ändern.
Ich versuche hava zwei Möglichkeiten:
Zuerst kopiere ich alle Dateien und Verzeichnisse in/var/lib/mysql/home/Daten und chown -R mysql:mysql /home/data
laufen. Aber wenn ich systemctl start mysqld
laufen lasse, erhalte ich Fehlermeldung:
2016-12-08T16:33:38.206780Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
2016-12-08T16:33:38.206806Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
2016-12-08T16:33:38.206817Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2016-12-08T16:33:38.807398Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2016-12-08T16:33:38.807421Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2016-12-08T16:33:38.807429Z 0 [ERROR] Failed to initialize plugins.
2016-12-08T16:33:38.807436Z 0 [ERROR] Aborting
Zweitens, ich bewegen/var/lib/mysql/home und ln -s /home/mysql mysql
in/var/lib-Verzeichnis ausgeführt. Wenn ich systemctl start mysqld
laufen lasse, erhalte ich Fehlermeldung:
2016-12-08T16:48:28.958136Z 0 [ERROR] InnoDB: Operating system error number 13 in a file operation.
2016-12-08T16:48:28.958165Z 0 [ERROR] InnoDB: The error means mysqld does not have the access rights to the directory.
2016-12-08T16:48:28.958174Z 0 [ERROR] InnoDB: os_file_get_status() failed on './ibdata1'. Can't determine file permissions
2016-12-08T16:48:28.958184Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2016-12-08T16:48:29.558751Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2016-12-08T16:48:29.558792Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2016-12-08T16:48:29.558806Z 0 [ERROR] Failed to initialize plugins.
2016-12-08T16:48:29.558817Z 0 [ERROR] Aborting
Wie kann ich damit umgehen?
Ich hatte dieses Problem in Windows. Sobald ich die Protokolldatei gelöscht habe, wurde der Dienst ordnungsgemäß gestartet. ibdata1 wird die Protokolldatei sein, wenn Sie eine Sicherung haben, löschen Sie sie und versuchen Sie erneut, den Dienst zu starten. – Rajesh
@Rajesh Ich habe versucht, alle 'ib_logfile' zu löschen. Aber es funktioniert nicht. Danke vielmals. – lbear
@ibear wo können Sie das beheben? –