Ändern des MySQL-Datenverzeichnisses auf EC2

Ändern des MySQL-Datenverzeichnisses auf EC2

Ich habe eine EC2-Instanz eingerichtet und versuche, das MySQL-Datenverzeichnis auf den bereitgestellten Speicher zu verschieben.

Das Standarddatenverzeichnis ist:

/opt/bitnami/mysql/data

Ich habe das Verzeichnis komplett kopiert nach

/mnt/mysql_data

Anschließend habe ich den Pfad in my.cnf wie folgt geändert:

datadir=/mnt/mysql_data

und habe das alte Verzeichnis umbenannt, um sicherzugehen, dass ich das neue verwende.

Ich habe MySQL die entsprechenden Berechtigungen für das neue Verzeichnis erteilt, aber ich glaube nicht, dass MySQL überhaupt versucht, dorthin zu gelangen. Wenn ich versuche, MySQL neu zu starten, erhalte ich Fehlermeldungen zum vorherigen Datenverzeichnis:

sudo /opt/bitnami/ctlscript.sh start mysql
111122 18:50:50 mysqld_safe Logging to '/opt/bitnami/mysql/data/mysqld.log'.
touch: cannot touch `/opt/bitnami/mysql/data/mysqld.log': No such file or directory
chown: cannot access `/opt/bitnami/mysql/data/mysqld.log': No such file or directory
111122 18:50:50 mysqld_safe Starting mysqld.bin daemon with databases from /opt/bitnami/mysql/data
/opt/bitnami/mysql/bin/mysqld_safe: 739: cannot create /opt/bitnami/mysql/data/mysqld.log: Directory nonexistent
eval: 1: cannot create /opt/bitnami/mysql/data/mysqld.log: Directory nonexistent
111122 18:50:50 mysqld_safe mysqld from pid file /opt/bitnami/mysql/data/ip-10-120-253-190.pid ended
/opt/bitnami/mysql/bin/mysqld_safe: 783: cannot create /opt/bitnami/mysql/data/mysqld.log: Directory nonexistent

Habe ich irgendwo einen Konfigurationsschritt übersehen? Ich habe gesehen, wie andere mit Problemen es gelöst haben, indem sie Apparmor angepasst haben, aber ich habe nicht einmal die Datei „/etc/apparmor.d/usr.sbin.mysqld“, die sie ändern sollten. Außerdem scheint mein Problem nicht zu sein, dass MySQL nicht auf das neue Verzeichnis zugreifen kann, sondern dass es immer noch das alte verwendet.

Antwort1

Es stellte sich heraus, dass Amazons Kontrollskript "/opt/bitnami/ctlscript.sh" ein MySQL-Konfigurationsskript unter /opt/bitnami/mysql/scripts/ctl.sh ausführt.

Ärgerlicherweise überschreibt dieses Skript einige wichtige Einstellungen aus der Datei my.cnf. Eine Aktualisierung dort behebt das Problem.

Antwort2

Sie müssen mysql so konfigurieren, dass es das neue Protokollverzeichnis verwendet. Bearbeiten Sie dazu /etc/mysql/my.cnf (in diesem Fall verwende ich Debian) und aktualisieren Sie

general_log_file = /mnt/data/log

Viel Glück.

verwandte Informationen