ubuntuusers.de

mysql datadir ändern

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

tuxbruno

Anmeldungsdatum:
21. Juli 2008

Beiträge: 24

Hallo.

Ich versuche in der my.cnf das Verzeichnis für die Datenbanken zu ändern. Mysql lässt sich jedoch nach dieser änderung nicht mehr starten.

$ sudo /etc/init.d/mysql restart
 * Stopping MySQL database server mysqld                                 [ OK ]
 * Starting MySQL database server mysqld                                 [fail]

Die syslog sagt folgendes dazu:

Nov 13 08:55:24 server1 mysqld_safe[21791]: started
Nov 13 08:55:24 server1 kernel: [1190434.836807] audit(1226562924.992:39): type=1503 operation="inode_create" requested_mask="w::" denied_mask="w::" name="/home/mysql/server1.lower-test" pid=21793 profile="/usr/sbin/mysqld" namespace="default"
Nov 13 08:55:24 server1 kernel: [1190434.837638] audit(1226562924.992:40): type=1503 operation="inode_create" requested_mask="w::" denied_mask="w::" name="/home/mysql/server1.lower-test" pid=21793 profile="/usr/sbin/mysqld" namespace="default"
Nov 13 08:55:24 server1 mysqld[21795]: 081113  8:55:24 [Warning] Can't create test file /home/mysql/server1.lower-test
Nov 13 08:55:25 server1 mysqld[21795]: 081113  8:55:24 [Warning] Can't create test file /home/mysql/server1.lower-test
Nov 13 08:55:25 server1 kernel: [1190434.863657] audit(1226562925.012:41): type=1503 operation="inode_permission" requested_mask="rw::" denied_mask="rw::" name="/home/mysql/ibdata1" pid=21793 profile="/usr/sbin/mysqld" namespace="default"
Nov 13 08:55:25 server1 mysqld[21795]: 081113  8:55:25  InnoDB: Operating system error number 13 in a file operation.
Nov 13 08:55:25 server1 mysqld[21795]: InnoDB: The error means mysqld does not have the access rights to
Nov 13 08:55:25 server1 mysqld[21795]: InnoDB: the directory.
Nov 13 08:55:25 server1 mysqld[21795]: InnoDB: File name ./ibdata1
Nov 13 08:55:25 server1 mysqld[21795]: InnoDB: File operation call: 'open'.
Nov 13 08:55:25 server1 mysqld[21795]: InnoDB: Cannot continue operation.
Nov 13 08:55:25 server1 mysqld_safe[21801]: ended
Nov 13 08:55:39 server1 /etc/init.d/mysql[21951]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
Nov 13 08:55:39 server1 /etc/init.d/mysql[21951]: ^G/usr/bin/mysqladmin: connect to server at 'localhost' failed
Nov 13 08:55:39 server1 /etc/init.d/mysql[21951]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Nov 13 08:55:39 server1 /etc/init.d/mysql[21951]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Nov 13 08:55:39 server1 /etc/init.d/mysql[21951]:

Die Rechte, Benutzer und Gruppen aus dem Orginalordner habe ich alle in dem neuen Ordner übernommen - ohne Erfolg

Eine generelle Freigabe (777) brachte auch kein Ergebnis.

System: Ubuntu Hardy 2.6.24-19-server mit LAMP , Mysql MySQL-Client-Version: 5.0.51a

Ich hoffe Ihr könnt mir helfen.

tuxbruno

uname

Anmeldungsdatum:
28. März 2007

Beiträge: 6030

Wohnort: 127.0.0.1

Nov 13 08:55:24 server1 mysqld[21795]: 081113  8:55:24 [Warning] Can't create test file /home/mysql/server1.lower-test

Irgendwie fehlen wohl doch irgendwelche Rechte. Meistens ist es übrigens eine sehr dumme Idee an den Konfigurationen rumzudrehen. Mit etwas Pech zerschießt es bei irgendeinem Update mal die Datenbank. Ich hoffe, dass du eine guten Grund für deine Aktion hast. Normale Leute sind mit den Standardkonfigurationen zufrieden, da ein Entwickler besser weiss warum Daten wo rumliegen.

Ach ja: alternativ legt man eher eine eigene Partition für die Daten an.

tuxbruno

(Themenstarter)

Anmeldungsdatum:
21. Juli 2008

Beiträge: 24

Danke für die Antwort.

Ich werde dann eine Partition für /var/log/mysql anlegen, wenn es so problematisch ist die Konfiguration zu ändern.

Gruß

Tuxbruno

uname

Anmeldungsdatum:
28. März 2007

Beiträge: 6030

Wohnort: 127.0.0.1

Um welche Informationen geht es dir denn primär? Sind es die wenigen Logdateien oder eher eine große Menge an Datenbank-Daten? Warum möchtest du MySQL auf eine andere Partition bringen.

Alternativ kannst du noch Softlinks nutzen:

ln -s /home/irgendwo /var/irgendwo

Siehe:

man ln

tuxbruno

(Themenstarter)

Anmeldungsdatum:
21. Juli 2008

Beiträge: 24

ln -s hab ich auch schon getestet, mit negativem Ergebnis.

Mein Ursprünglicher Gedanke war die Daten von mysql in einen Ordner auf die home-Partition zu packen, um später einfacher zur Datensicherung zugreifen zu können. Außerdem hab ich meine Betriebssystem-Partition klein gehalten. Die Datenmengen sind sicher nicht außer Acht zu lassen, mysql soll Logdaten der SPS-Steuerungen (Temperatur etc.) aufzeichenen. Es geht also primär um die Datenbank-Daten.

Ich hatte schon die Vermutung, das der User mysql keinen Zugriff auf die home-Partition hat, allerdings sagt fstab dazu nichts aus.

Gruß

tuxbruno

Dalai

Avatar von Dalai

Anmeldungsdatum:
16. Juni 2008

Beiträge: 2316

Wohnort: Meiningen

Bitte AppArmor anpassen! Das steht auch so im Wiki zu MySQL.

MfG Dalai

tuxbruno

(Themenstarter)

Anmeldungsdatum:
21. Juli 2008

Beiträge: 24

Heureka !!!

Das war's. Ich habe mit sudo cp -rp (p-wegen der Rechte) den ordner /var/lib/mysql in den neuen Orner kopiert. Mysql läuft jetzt im neuen Ordner ohne Probleme.

Danke für Eure Hilfe.

tuxbruno.

Antworten |