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.

Leave a Reply

Your email address will not be published. Required fields are marked *