Für die Entwicklung einiger eigener Plesk Extensions habe ich einen vServer gemietet auf dem ein Plesk Onyx läuft. Neulich gab es da 100 Paket-Updates und ich hab sie mal machen lassen. Kurz darauf der Schreck: Plesk funktionierte nicht mehr. Die Meldung: ERROR: Zend_Db_Adapter_Exception: SQLSTATE[HY000] [2002] No such file or directory. Und nun?
Ich habe im Internet gelesen und versucht. Nichts half. Etwa 10 Minuten nach dem „Update“-Klick wusste ich, das mysql nicht lief. Etwa 30 Minuten später wusste ich was los war:
1 2 |
tail -f /var/log/syslog & service start mysql |
Ergab:
1 2 3 4 5 6 7 |
Nov 19 08:09:33 v22016081573736335 mysqld_safe: Starting mysqld daemon with databases from /var/lib/mysql Nov 19 08:09:33 v22016081573736335 mysqld: 161119 8:09:33 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead. Nov 19 08:09:33 v22016081573736335 mysqld: /usr/sbin/mysqld: Error on realpath() on '/var/lib/mysql-files' (Error 2) Nov 19 08:09:33 v22016081573736335 mysqld: 161119 8:09:33 [ERROR] Failed to access directory for --secure-file-priv. Please make sure that directory exists and is accessible by MySQL Server. Supplied value : /var/lib/mysql-files Nov 19 08:09:33 v22016081573736335 mysqld: 161119 8:09:33 [ERROR] Aborting Nov 19 08:09:33 v22016081573736335 mysqld: Nov 19 08:09:33 v22016081573736335 mysqld_safe: mysqld from pid file /var/run/mysqld/mysqld.pid ended |
Es gab also irgendwelche Probleme mit dem Pfad „/var/lib/mysql-files“. Ich habe geprüft was darin ist und wollte schauen ob die Berechtigungen passen… Der Ordner existierte nicht! OK, daran wird es wohl liegen, doch wo bekomme ich den Ordner her und was gehört da rein.
Die Lösung ist simpel
Ganz ehrlich, ich habe das folgende im Netz als Kommentar gelesen und wollte einfach nicht daran glauben dass es wirklich hilft:
1 2 3 |
mkdir /var/lib/mysql-files chown -R mysql.mysql /var/lib/mysql-files service mysql start |
Also: Einfach Ordner anlegen, Dateiberechtigungen setzen und schon startet MySQL wieder.
Im Plesk fand ich einen gelben Warnhinweis, dass ein update nicht lief wie geplant und ich doch bitte die Reperatur (link) starten solle. Geklickt, gewartet: Fertig.