MySQL startet nicht nach dem Ändern des Datenverzeichnisses (14.04, MySQL 5.7)

MySQL startet nicht nach dem Ändern des Datenverzeichnisses (14.04, MySQL 5.7)

Ich habe eine separate Festplatte in /mnt/temp gemountet und geändertDatenverzeichnisum darauf hinzuweisen. Ich habe die richtigen Einstellungen in apparmor hinzugefügt und ein paar Stunden mit mysql gearbeitet. Nach dem Hinzufügen performance_schemazumeine.cnfund beim Versuch, MySQL neu zu starten, erhalte ich die folgenden Fehler:

[Warning] Can't create test file /mnt/temp/some_dir/blah.lower-test
...
[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
...

Ich habe seitdem chmod -R 777 /mnt/tempApp Armor heruntergefahren, die Partition erneut gemountet, alle Prozesse, die mit der Partition interagieren würden, manuell beendet und sie performance_schemaaus meiner Konfiguration entfernt.

Irgendwelche Vorschläge?

Antwort1

AusMySQL lernen: AppArmor und MySQL

Wenn Sie das Datenverzeichnis in MySQL verschieben möchten (in diesem Beispiel nach /data/directory) und AppArmor dies nicht zulässt, fügen Sie am Ende von die folgenden beiden Zeilen hinzu /etc/apparmor.d/local/usr.sbin.mysqld:

/data/ r,
/data/** rwk, 

... und laden Sie dann die AppArmor-Profile neu:

sudo service apparmor reload 

Antwort2

Mir ist das Gleiche passiert und ich konnte mir vorstellen, dass es ein Eigentumsproblem war (dies ließ mich auch den Eindruck gewinnen, dass es ein Problem mit AppArmor gab).

Vielleicht können Sie Folgendes versuchen (ändern Sie es, /var/lib/mysqlwenn es nicht mit Ihrem übereinstimmt):

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

Als erklärende Randbemerkung: Die Benutzer- und Gruppen-IDs für MySQL haben sich seit der älteren Ubuntu-Version geändert. Die vorherige Benutzer-ID und Gruppen-ID sahen jetzt wie hplipund aus pulse-access. Da das Datenverzeichnis für mich ein Mount-Bind ist (auf einer anderen Partition), hatte es immer noch diese vorherigen IDs, deren Zuweisung sich geändert hat.

verwandte Informationen