MySQL Datenbanken werden von Ubuntu standardmäßig unter /var/lib/mysql gespeichert. Wenn man die Datenbanken in einem anderen Verzeichnis speichern möchte, z.B. auf einer separaten Datenpartition muss dieser Pfad geändert werden.

Nachdem die Datenbanken in das neue Verzeichnis kopiert wurden muss in der MySQL Configdatei unter /etc/mysql/my.cnf der Pfad unter „basedir“ angepasst werden.

sudo nano /etc/mysql/my.cnf

Startet man nun MySQL neu erhält man jedoch folgende Felhermeldung im Syslog:

Jul 30 13:36:54 hostname kernel: [75872.000591] type=1400 audit(1375184214.335:49): apparmor=“DENIED“ operation=“mknod“ parent=1 profile=“/usr/sbin/mysqld“ name=“/data/mysql/hostname.lower-test“ pid=15706 comm=“mysqld“ requested_mask=“c“ denied_mask=“c“ fsuid=0 ouid=0
Jul 30 13:36:54 hostname kernel: [75872.000760] type=1400 audit(1375184214.335:50): apparmor=“DENIED“ operation=“mknod“ parent=1 profile=“/usr/sbin/mysqld“ name=“/data/mysql/hostname.lower-test“ pid=15706 comm=“mysqld“ requested_mask=“c“ denied_mask=“c“ fsuid=0 ouid=0

Die Änderung muss also auch noch in der Apparmorconfig eingetragen werden mit

sudo nano /etc/apparmor.d/usr.sbin.mysqld

müssen alle Pfade von /var/lib/mysql auf das neue verzeichnis geändert werden. Anschließend muss apparmor und mysql neugestartet werden.

sudo service apparmor restart

sudo service mysql restart

Die Fehlermeldung sollte nun verschwinden und die Datenbanken im neuen Verzeichnis gespeichert werden.


Dieser Artikel ist lizenziert unter einer Creative Commons Namensnennung 3.0 Deutschland Lizenz.

1 Comment

  1. Hallo
    Leider ist das ganze nicht so einfach wie hier beschrieben.
    Der Tablespace ist im neuen Verzeichnis nicht mehr vorhanden.
    Es muss also eine größere Aktion durchgeführt werden,
    um die Datenbank wieder zu nutzen.
    Am besten man macht vor dem ganzen verschieben erst einen export
    und im neuen Verz. einen import. Das ist die schnellste Variante.
    Gruss Andihea