Fehler "Can't connect to /tmp/mysql.sock"

Kategorie: MySQL
Erstellt: 13.08.2020

Problem: in LiveConfig (unter Serververwaltung -> Datenbank) oder in der LiveConfig Log-Datei erhalten Sie die Fehlermeldung Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’.

Ursache: der MySQL-Server erzeugt das Socket z.B. unter /var/run/mysqld/mysqld.sock, während der Client diesen unter /tmp/mysql.sock erwartet. Dieses Problem tritt häufig auf Systemen mit falscher Standardkonfiguration (z.B. Ubuntu 16) oder manuell installiertem MySQL/MariaDB-Paket auf.

Lösung: der Socket-Pfad für den Server und für den Client muss auf den selben Wert eingestellt werden. Das Verzeichnis /var/run/mysqld/ ist aus Sicherheitsgründen gegenüber /tmp/ zu bevorzugen. In der MySQL-Konfiguration (i.d.R. /etc/mysql/my.cnf) gibt es jeweils einen Konfigurationsabschnitt für den Server (unter [server]) und den Client ([client]). Suchen Sie dort jeweils den Eintrag socket = ... und passen diesen entsprechend an.

Falls die Datei my.cnf den Befehl !includedir /etc/mysql/conf.d/ enthält (i.d.R. ganz am Ende), dann wäre es die sauberste Lösung, wenn Sie eine Datei namens /etc/mysql/conf.d/client.cnf anlegen, und dort folgende zwei Zeilen eintragen:

[client]
socket = /var/run/mysqld/mysqld.sock

Starten Sie anschließend LiveConfig neu (damit es die aktualisierte MySQL-Client-Konfiguration verwendet). MySQL muss nicht neu gestartet werden, außer Sie ändern den Socket im [server]-Abschnitt.