
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.pid
obwohl deren Pfade explizit wie folgt mysqld.sock
festgelegt 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.pid
und mysqld.sock
in 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.pid
Datei mit touch
:
sudo touch /var/run/mysqld/mysqld.pid
Erstellen Sie als Nächstes eine mysqld.sock
Datei mit touch
:
sudo touch /var/run/mysqld/mysqld.sock
Ändern Sie nun den Eigentümer des Verzeichnisses und der Dateien wie mysql:mysql
folgt:
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.pid
und mysqld.sock
Dateien wie erwartet erstellen.