Hallo Leute,
ich bin gerade etwas ratlos. :( Ich hab bei meinem Raspberry das
Wurzelverzeichnis Readonly gemounted und das System entsprechend
angepasst. Seit dem startet Mysql nicht mehr automatisch via Init beim
booten. Interessanterweise kann ich nach dem booten mysql via ssh
problemlos per "/etc/init.d/mysql4 start" starten! Die Schreibrechte
müssten also stimmen. :?
Meine Verzeichnisstruktur:
1
/ (SD-Karte Partition 2, ext4, Readonly)
2
/var (SD-Karte Partition 3, ext4, Read/Write)
3
/ext (USB-Laufwerk, ext4, Read/Write)
4
restliche mounts standardmässig.
MySQL-Datenverzeichnis:
1
/ext/mysql (Daten/Config/Logs/PID)
"Fehlermeldung":
1
Starting mysqld daemon with databases from /ext/mysql
2
STOPPING server from pid file /ext/mysql/raspberrypi.pid
3
160109 18:36:32 mysqld ended
Das einzige was ich da raus lese, ist, dass er anscheinend erfolgreich
die Datei /ext/mysql/raspberrypi.pid schreiben und lesen konnte.
Leider hab ich in keiner Log mehr über die Ursache gefunden.
Um der Sache auf den Grund zu gehen, hab ich in dem Init-Script von
mysql u.a. die Ausgabe von folgenden Befehlen in eine Datei schreiben
lassen.
1
whoami (ist root)
2
mount (alles gemountet wie vorgesehen)
3
ls -al /ext/mysql (alles da)
4
ps ax (konnte nichts auffälliges erkennen)
5
sleep 10 (bisschen warten schadet nie, aber genützt hat es nichts)
hat jemand eine Idee in welche Richtung ich suchen könnte? Was ist
während dem init anders, als später in der shell?
Danke sehr
Würde ich als Test vorm runter fahren die raspberrypi.pid löschen.
Vielleicht ist da ein Bug, wenn der mysqld immer mit der selben Pid
gestartet wird.
Als vorletzte Möglichkeit den mysqld mit strace -o und -f usw. starten.
Wenn du dann immer noch keine Fehlermeldung bekommst, brauchst du einen
Exorzisten.
Hallo noch einer,
gestern, als ich hier die nackte my.cnf (ohne die ganzen Kommentare)
gesehen habe, ist mir aufgefallen, dass es da gar keine Angabe gibt, mit
welchem Benutzer mysqld gestartet werden soll. Trotzdem wird mysqld,
wenn ich als root eingeloggt bin, mit "/etc/init.d/mysql4 start" als
Benutzer mysql4 gestartet (hab ich geprüft). Ich dachte erst, dass das
vielleicht in die binaries einkompiliert wurde, da ich mit
--with-mysqld-user=mysql4 kompiliert habe. Trotzdem hab ich jetzt heute
mal unter [mysqld] "user = mysql4" eingetragen, und siehe da, es
funktioniert jetzt! Thema hat sich eigentlich erledigt.
Aber kann mir jemand trotzdem erklären, warum das per shell ohne diesen
Eintrag funktioniert, per init aber nicht (ausser, wenn / als rw
gemounted wird)? Vielleicht doch einen Exorzisten beauftragen?
Danke trotzdem an alle