MySQL-Dienst startet nicht, InnoDB-Init-Funktionsfehler

Lesezeit: 3 Minuten

Scheinbar aus dem Nichts ging meine WordPress-Site heute Nacht aus und ich habe sie auf Probleme mit MySQL zurückgeführt. MySQL startet nicht auf dem Server, weil es immer wieder fehlschlägt.

Hier ist, was ich aus den Protokollen bekomme:

140226 08:54:11 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
140226 08:58:20 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140226  8:58:20 [Note] Plugin 'FEDERATED' is disabled.
140226  8:58:20 InnoDB: The InnoDB memory heap is disabled
140226  8:58:20 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140226  8:58:20 InnoDB: Compressed tables use zlib 1.2.3
140226  8:58:20 InnoDB: Using Linux native AIO
/usr/libexec/mysqld: Can't create/write to file '/dev/shm/mysql/ibOqUOjF' (Errcode: 2)
140226  8:58:20  InnoDB: Error: unable to create temporary file; errno: 2
140226  8:58:20 [ERROR] Plugin 'InnoDB' init function returned error.
140226  8:58:20 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140226  8:58:20 [ERROR] Unknown/unsupported storage engine: InnoDB
140226  8:58:20 [ERROR] Aborting

Ich habe versucht, zu googeln und hier auf Stack Overflow zu suchen, aber ich kann anscheinend nicht viele Lösungen finden, außer die ipdata1- und Protokolldateien zu löschen, die, wie ich gelesen habe, nicht mit gespeicherten Daten durchgeführt werden sollten, da dies durcheinander geraten würde meine Tische hoch.

Dies befindet sich auf einem NGINX CentOS 6-Server.

Irgendwelche Ideen? Ich weiß die Hilfe zu schätzen!

  • Es scheint, dass das Berechtigungsproblem auf /dev/shm/mysql/

    – Abdel Manaf

    26. Februar 2014 um 9:18 Uhr

  • AFAIK Systemfehler: 2 = Keine solche Datei oder Verzeichnis – existiert das Verzeichnis? Hat mysql die Berechtigung, darauf zu schreiben? Ist noch genügend Speicherplatz auf der Festplatte vorhanden?

    – Jon

    26. Februar 2014 um 9:28 Uhr

  • @AbdulManaf Duh.. Ich habe diese Berechtigungen festgelegt und jetzt startet es, aber die Site ist immer noch 404’ing. Das steht auch im Log: Server hostname (bind-address): '0.0.0.0'; port: 3306 was nicht so aussieht, als würde es sich mit dem richtigen Hostnamen verbinden.

    – evan3168

    26. Februar 2014 um 9:29 Uhr

  • @Jon Du warst genau richtig. Das Verzeichnis existierte nicht, also habe ich es erstellt und die Berechtigungen auf mysql angewendet. Dadurch konnte MySQL gestartet werden, die Site funktioniert jedoch immer noch nicht …

    – evan3168

    26. Februar 2014 um 9:34 Uhr


  • @ evan3168 Sie müssen sich binden 0.0.0.0 wenn Sie externen Zugriff auf Ihre Datenbank wünschen. MySQL läuft also, aber Nginx gibt Ihnen 404-Fehler aus? Was sagen die Nginx-Protokolle?

    – Jon

    26. Februar 2014 um 9:41 Uhr

AFAIK Systemfehler: 2 = Keine solche Datei oder Verzeichnis.

Überprüfen Sie, ob das Verzeichnis existiert, ob mysql die Berechtigung hat, darauf zu schreiben, und ob noch genügend Speicherplatz auf der Festplatte vorhanden ist.

  • Das Verzeichnis existiert also definitiv. Ich habe mysql:mysql die Berechtigung 776 erteilt. Ich habe den Server neu gestartet und jetzt startet er überhaupt nicht mehr. Sogar mit dem Verzeichnis und den Berechtigungen fest. NGINX-Fehlerprotokolle zeigen nichts Neues.

    – evan3168

    26. Februar 2014 um 9:58 Uhr

  • Die Protokolle sagten dasselbe, aber es startete nicht. Ich habe es geschafft, mich mit meinem Systemadministrator in Verbindung zu setzen, der das Problem behoben hat, mich aber noch nicht über die Ursache informiert hat. Ich werde hier sicher nachhaken. Danke für Ihre Hilfe!

    – evan3168

    26. Februar 2014 um 19:41 Uhr

Eine weitere Überlegung könnte darin bestehen, sicherzustellen, dass Ihr für mysql verwendetes tmpdir über genügend Speicherplatz und die erforderlichen Berechtigungen verfügt.

Und dazu, für Windows-Benutzer: Erwägen Sie die Verwendung front slash (/) gegenüber back slash (\) für dein tmpdir Weg

  • Danke Gott! Ich habe ewig damit gekämpft, ich benutze SSD Caching und MUSS das Windows tmpdir angeben!

    – 1232133d2ffa

    15. Mai 2015 um 1:50 Uhr

  • Es kann auch ein doppelter Backslash verwendet werden, da ein einzelner als Escape-Zeichen verwendet wird.

    – Christian Læirbag

    13. Februar 2016 um 19:32 Uhr

963100cookie-checkMySQL-Dienst startet nicht, InnoDB-Init-Funktionsfehler

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy