MySQL kaputt

Oder passiert dass öfters mal, dass MySQL Fehler hat?
Würde ich nicht sagen. Persönlich habe ich bisher selten Fehler/Probleme mit MySQL gehabt. Es sei denn die Platte war voll, aber dann ist es nicht nur MySQL, was nicht mehr will. :D
-
Was mich etwas stören würde, ist, das das mysql Socket nicht dem mysql Nutzer und der mysql Gruppe gehört. Da ganze unabhängig von dem Fehler ...
 
-rw-rw---- 1 mysql mysql 10956 2007-08-09 12:27 mysqld.log.1
srwxrwxrwx 1 root root 0 2007-08-09 12:28 mysql.sock
Daraus ergeben sich für mich zwei Fragen:
1.) Was steht in mysqld.log.1?
2.) Warum ist ein mysql.sock vorhanden, wenn mysqld nicht läuft?

Vorgehensweise:
Schau mal mit "ps aux|grep mysql" nach, ob MySQL wirklich nicht läuft.
Lösche ggf. die Socket-Datei und starte dann nochmal MySQL.

huschi.
 
mysqld.log.1
Code:
070809 11:24:45 [Note] /usr/sbin/mysqld: Shutdown complete

070809 11:24:46  mysqld ended

070809 11:29:47  mysqld started
^G/usr/sbin/mysqld: Can't read dir of '/var/lib/mysql/tmp/' (Errcode: 2)
^G/usr/sbin/mysqld: Can't create/write to file '/var/lib/mysql/tmp/ib28efH3' (Errcode: 2)
070809 11:29:47  InnoDB: Error: unable to create temporary file; errno: 2
070809 11:29:47 [ERROR] Can't init databases
070809 11:29:47 [ERROR] Aborting

070809 11:29:47 [Note] /usr/sbin/mysqld: Shutdown complete

070809 11:29:47  mysqld ended
.........
.........
.........
070809 12:27:32  mysqld started
^G/usr/sbin/mysqld: Can't read dir of '/var/lib/mysql/tmp/' (Errcode: 2)
^G/usr/sbin/mysqld: Can't create/write to file '/var/lib/mysql/tmp/ibdIHVdl' (Errcode: 2)
070809 12:27:32  InnoDB: Error: unable to create temporary file; errno: 2
070809 12:27:32 [ERROR] Can't init databases
070809 12:27:32 [ERROR] Aborting

070809 12:27:32 [Note] /usr/sbin/mysqld: Shutdown complete

070809 12:27:32  mysqld ended
Wofür sind denn ibdata1, ib_logfile0 und ib_logfile1 und ist das jetzt schlimm, dass mysql.sock root gehört?

Ob mysql.sock immernoch vorhanden ist wenn ich den DB-Server abschalte werde ich heute abend probieren. Bis dahin ist es erstmal wichtiger dass er überhaupt läuft^^
 
:D:D:D
Jetzt lässt sich der MySQL-Server nicht mehr stoppen
Code:
vxxxxx:~ # /etc/init.d/mysql stop
Shutting down service MySQL                                          done
vxxxxx:~ # /etc/init.d/mysql status
Checking for service MySQL:                                          running
vxxxxx:~ # ps aux|grep mysql
root     19744  0.0  0.0  65436 18944 ?        Sl   Aug09   0:04 mysqld -u root
Dann habe ich MySQL wohl nicht mit rcmysql sondern mit mysqld -u root gestartet. Dann ist es ja auch kein Wunder, dass die Dateien root gehören wenn ich MySQL als root starte oder?

Was soll ich jetzt machen?:confused:

MySQL läuft ja im Moment ohne Probleme. Wo ist der Unterschied wenn ich mit mysqld -u root starte und nicht mit /etc/init.d/mysql start.

Soll ich den Prozess mit kill beenden dann mal die mysql.sock löschen und probieren normal zu starten?
Also eigentlich hab ich ja kein Grund das zu verändern oder?
"Never chang a running system" =)
 
Wo ist der Unterschied wenn ich mit mysqld -u root starte und nicht mit /etc/init.d/mysql start.
Das MySQL jetzt mit root-Rechten läuft und das ganze System zerstören könnte.
Ausserdem funktionieren alle Start-Scripte nicht mehr.

Soll ich den Prozess mit kill beenden dann mal die mysql.sock löschen und probieren normal zu starten?
Wäre ne Möglichkeit.

huschi.
 
Ich habe jetzt den Prozess beendet die mysql.sock zur Sicherheit nur umbenannt und dann probiert normal zu starten aber ohne Erfolg. Mit /etc/init.d/mysql start bekomm ich immer nur unused als Ergebnis.
Also hab ich mir gedacht wenn mysqld -u root sogut funktioniert hat warum nicht mysqld -u mysql. Jetzt läuft es zwar nichtmehr als root aber es ist wohl doch nicht das wahre über Plesk lässt sich MySQL dann auch nicht stoppen oder neustarten.
Hab MySQL jetzt nochmal ausgemacht um es normal zu starten aber das klappt halt nicht.
Die mysql.sock ist jetzt weg wenn MySQL nicht läuft
Code:
drwxr-xr-x  22 mysql mysql     4096 2007-08-11 12:21 .
drwxr-xr-x  28 root  root      4096 2007-04-23 12:20 ..
drwx------   2 mysql mysql     8192 2007-03-03 15:26 aerztedb
srwxrwxrwx   1 mysql mysql        0 2007-08-11 12:08 asd
drwx------   2 mysql mysql     8192 2007-06-12 20:59 eqdkp
drwx------   2 mysql mysql     4096 2007-07-30 20:55 finehistoricalcars
drwx------   2 mysql mysql     4096 2007-06-19 14:52 finehistoricalcarscom
drwx------   2 mysql mysql     4096 2007-01-31 17:56 horde
-rw-rw----   1 mysql mysql 27262976 2007-08-11 12:21 ibdata1
-rw-rw----   1 mysql mysql  5242880 2007-08-11 12:21 ib_logfile0
-rw-rw----   1 mysql mysql  5242880 2007-08-11 12:20 ib_logfile1
drwx------   2 mysql mysql     4096 2007-05-05 13:58 messzeuge
drwx------   2 mysql mysql     8192 2007-05-22 13:25 mib
drwx------   2 mysql mysql     4096 2006-10-19 12:32 mysql
-rw-rw----   1 mysql mysql      874 2007-08-11 12:11 mysqld.log
-rw-rw----   1 mysql mysql    10956 2007-08-09 12:27 mysqld.log.1
drwx------   2 mysql mysql     4096 2007-04-23 13:52 phpmyadmin_ixCX4aK56VAN
drwx------   2 mysql mysql     4096 2007-01-31 17:51 phpmyadmin_M3LKsYt4D6aP
drwx------   2 mysql mysql     4096 2006-10-19 12:32 phpmyadmin_t8OHZKhpK4sZ
drwx------   2 mysql mysql     8192 2007-07-16 20:22 piko
drwx------   2 mysql mysql     8192 2007-04-23 13:53 psa
drwx------   2 mysql mysql     4096 2007-06-25 15:38 roster
drwx------   2 mysql mysql     8192 2007-04-23 12:24 sitebuilder3
drwx------   2 mysql mysql    12288 2007-07-06 14:11 soltec
drwx------   2 mysql mysql     8192 2007-05-09 12:22 test
drwx------   2 mysql mysql    16384 2007-08-07 18:13 uniorbit
-rw-r--r--   1 mysql mysql        0 2006-10-19 11:59 update-stamp-4.1
drwx------   2 mysql mysql     8192 2007-05-16 17:55 uworakete
drwx------   2 mysql mysql     8192 2007-07-23 19:04 wowcrown

du /var/lib/mysql gibt fast das gleiche aus nur am Anfang sind ein paar zahlen anders.
1468 /var/lib/mysql/sitebuilder3 ist jetzt
1476 /var/lib/mysql/sitebuilder3
/var/lib/mysql und haben auch die zahl am Anfang geändert. Keine Ahnung ob das die ID ist oder wofür die Zahl steht.

In den Logfiles steht das gleiche
Code:
070811 12:11:31  mysqld started
^G/usr/sbin/mysqld: Can't read dir of '/var/lib/mysql/tmp/' (Errcode: 2)
^G/usr/sbin/mysqld: Can't create/write to file '/var/lib/mysql/tmp/ibLNHzO3' (Errcode: 2)
070811 12:11:31  InnoDB: Error: unable to create temporary file; errno: 2
070811 12:11:31 [ERROR] Can't init databases
070811 12:11:31 [ERROR] Aborting

070811 12:11:31 [Note] /usr/sbin/mysqld: Shutdown complete

070811 12:11:31  mysqld ended
Wie kann ich das denn jetzt wieder reparieren? Hat da jemand eine Idee?
 
Vielleicht solltest Du mal schauen, was derFehler, der im Logfile auftaucht bedeutet:
Code:
grep " 2" /usr/include/asm-generic/errno-base.h
#define ENOENT           2      /* No such file or directory */
Das Verzeichnis, das der mysqld braucht, existiert demnach nicht und er kann daher eine temporäre Datei nicht anlegen (default-mäßig wird dafür /tmp verwendet, aber je nach Laufzeit-Optionen (-t|--tmpdir=path), Einträgen in /etc/my.cnf oder Optionen, die bei der Kompilierung angegeben wurden, kann das auch ein anderes Verzeichnis sein).

Also musst Du entweder das Verzeichnis anlegen und die Berechtigungen entsprechend setzen, oder die Optionen/Konfigurationen so ändern, dass eben wieder /tmp verwendet wird.

LinuxAdmin
 
Google liefert übrigens direkt als ersten Link eine Lösung:
Lege einfach /var/lib/mysql/tmp an und setze passende Rechte dafür.

huschi.
 
Back
Top