Solltet ihr diesen Fehler in phpMyAdmin erfahren, liegt es mit hoher Wahrscheinlichkeit an dem gleichen Fehler, der oft mit der Fehlermeldung “Too many open files” quittiert wird. Ich erfuhr diesen Fehler gestern, nachdem ich ein Upgrade von PHP 5.5 auf 5.6 durchführte.
Das Problem schien sich noch auf einem weiteren Wege zu zeigen: Und zwar wurde trotz funktionierender Datenbank bei einigen WordPress-Blogs auf dem System das Installationsformular angezeigt – also so, als wäre die Datenbank noch nicht fertig eingerichtet worden. Zum Glück konnte ich den Fehler innerhalb weniger Augenblicke beheben, sodass das Problem nicht weiter auffiel.
Hier möchte ich nun als Hilfestellung beschreiben, was ich getan habe damit wieder alles seinen gewohnten Gang geht.
Prüfen, wieviele Dateien geöffnet sind:
lsof
Das ganze nutzerspezifisch:
lsof -u user
“user” kann hierbei zum Beispiel mit dem User eurer php-fpm-Instanz oder “mysql” ersetzt werden.
Jetzt zur Problemlösung:
Limitierungen in limits.conf erhöhen
Dazu muss die Datei /etc/security/limits.conf geöffnet und am Ende die folgenden beiden Limits für den mysql-User eingefügt werden. Damit wird das Soft- und Hardlimit um einiges erhöht.
mysql soft nofile 4096
mysql hard nofile 8192
Ein Neustart kann nach diesem Schritt nicht schaden, in meinem Fall ging es auch ohne.
Limitierungen von MySQL in my.cnf erhöhen
Dazu muss die Datei /etc/mysql/my.cnf geöffnet und die Parameter “open-files-limit” und “table_open_cache” angepasst werden. Beispielsweise so:
open-files-limit = 2048
table_open_cache = 512
Ein Neustart von MySQL muss hier erfolgen, beispielsweise mit dem Befehl “/etc/init.d/mysql restart” oder “service mysql restart”.
Der “table_open_cache”-Wert sollte ein bisschen ausprobiert werden. Hier gibt es dazu eine Anleitung.