Warum fehlen „mysqld.pid“ und „mysqld.sock“ auf meinem System, obwohl die Werte in „my.cnf“ festgelegt sind?

Warum fehlen „mysqld.pid“ und „mysqld.sock“ auf meinem System, obwohl die Werte in „my.cnf“ festgelegt sind?

Ich arbeitete aneine Antwort auf diese Frage– auf einem meiner Ubuntu 12.04.5-Entwicklungsserver – und habe festgestellt, dass die MySQL-Installation keine Dateien erstellte, mysqld.pidobwohl deren Pfade explizit wie folgt mysqld.sockfestgelegt waren :my.cnf

[mysqld]
# 
# * Basic Settings
# 
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

Warum passiert das und was kann getan werden, um das Problem zu lösen?

Antwort1

Obwohl die Speicherorte für mysqld.pidund mysqld.sockin meinem Server festgelegt sind my.cnf, existiert das Verzeichnis nicht, sodass diese Dateien nie erstellt werden. Dies wird das Problem beheben:

Erstellen Sie zunächst das mysqld/Verzeichnis wie /var/run/folgt:

sudo mkdir -p /var/run/mysqld/

Erstellen Sie dann eine mysqld.pidDatei mit touch:

sudo touch /var/run/mysqld/mysqld.pid

Erstellen Sie als Nächstes eine mysqld.sockDatei mit touch:

sudo touch /var/run/mysqld/mysqld.sock

Ändern Sie nun den Eigentümer des Verzeichnisses und der Dateien wie mysql:mysqlfolgt:

sudo chown mysql:mysql -R /var/run/mysqld

Schließlich sollten die Berechtigungen für diese Dateien wie folgt sein:

chmod 755 /var/run/mysqld
chmod 777 /var/run/mysqld/mysqld.sock
chmod 660 /var/run/mysqld/mysqld.pid

Und starten Sie MySQL wie folgt neu, um diese Dateien festzulegen und zu erstellen:

sudo service mysql restart

Wenn das alles erledigt ist, kann MySQL die mysqld.pidund mysqld.sockDateien wie erwartet erstellen.

verwandte Informationen