Raspian/Linux: mysql startet nicht per init

Gast #4418958
Lesenswert?

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
Gast #4419042
Lesenswert?

hier der Inhalt der my.cnf mit entfernten kommentaren
1
[client]
2
port    = 3306
3
socket    = /var/mysqld.sock
4

5
[mysqld]
6
port    = 3306
7
socket    = /var/mysqld.sock
8
skip-locking
9
key_buffer = 16M
10
max_allowed_packet = 1M
11
table_cache = 64
12
sort_buffer_size = 512K
13
net_buffer_length = 8K
14
read_buffer_size = 256K
15
read_rnd_buffer_size = 512K
16
myisam_sort_buffer_size = 8M
17

18
log-bin
19
server-id  = 1
20

21
[mysqldump]
22
quick
23
max_allowed_packet = 16M
24

25
[mysql]
26
no-auto-rehash
27

28
[isamchk]
29
key_buffer = 20M
30
sort_buffer_size = 20M
31
read_buffer = 2M
32
write_buffer = 2M
33

34
[myisamchk]
35
key_buffer = 20M
36
sort_buffer_size = 20M
37
read_buffer = 2M
38
write_buffer = 2M
39

40
[mysqlhotcopy]
41
interactive-timeout
Das Datenverzeichnis wird in /etc/init.d/mysql4 definiert.
Gast #4419050
Lesenswert?

Hier noch die Befehlszeile aus /etc/init.d/mysql4
1
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file >> /var/log/mysql4_start.log 2>&1 &
 Die Umleitung nach /var/log/mysql4_start.log hab ich hinzugefügt. Dort 
steht dann oben genannte Fehlermeldung.
Gast #4419288
Lesenswert?

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.
Gast #4419659
Lesenswert?

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
Gast #4419736
Lesenswert?

/tmp ist standardmässig tmpfs. Hier die restlichen mounts (alle belassen 
wie im offiziellen Image):
1
/dev/mmcblk0p1 on /boot     type vfat     (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
2
proc           on /proc     type proc     (rw,nosuid,nodev,noexec,relatime)
3
sysfs          on /sys      type sysfs    (rw,nosuid,nodev,noexec,relatime)
4
devtmpfs       on /dev      type devtmpfs (rw,relatime,size=218436k,nr_inodes=54609,mode=755)
5
devpts         on /dev/pts  type devpts   (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
6
tmpfs          on /run      type tmpfs    (rw,nosuid,noexec,relatime,size=44544k,mode=755)
7
tmpfs          on /run/lock type tmpfs    (rw,nosuid,nodev,noexec,relatime,size=5120k)
8
tmpfs          on /run/shm  type tmpfs    (rw,nosuid,nodev,noexec,relatime,size=89080k)
9
tmpfs          on /tmp      type tmpfs    (rw,nosuid,nodev,relatime,size=89080k)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren