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.