Die Unix-Socketdatei, die der Server für die Kommunikation mit
lokalen Clients benötigt, liegt nach Voreinstellung unter
/tmp/mysql.sock
. (In manchen
Distributionsformaten kann es auch ein anderes Verzeichnis sein,
wie beispielsweise /var/lib/mysql
für
RPMs.)
Auf manchen Unix-Versionen kann jeder Dateien aus dem
Verzeichnis /tmp
oder anderen ähnlichen
Verzeichnissen für temporäre Dateien löschen. Wenn die
Socketdatei auf Ihrem Dateisystem in einem solchen Verzeichnis
liegt, kann das zu Problemen führen.
Auf den meisten Unix-Versionen können Sie Ihr
/tmp
-Verzeichnis schützen, sodass die
Dateien nur von ihren Eigentümern oder dem Superuser
(root
) gelöscht werden können. Hierzu
setzen Sie das sticky
-Bit auf dem
/tmp
-Verzeichnis, indem Sie sich als
root
anmelden und folgenden Befehl geben:
shell> chmod +t /tmp
Ob das sticky
-Bit gesetzt wurde, prüfen Sie
mit ls -ld /tmp
. Wenn das letzte Zeichen der
Berechtigung ein t
ist, wurde das Bit
gesetzt.
Sie können auch veranlassen, dass der Server die Unix-Socketdatei in einem anderen Verzeichnis erstellt. Wenn Sie dies tun, müssen Sie den Clientprogrammen auch verraten, wo diese Datei jetzt liegt. Den Speicherort können Sie auf mehrere Weisen angeben:
Sie geben den Pfad in einer globalen oder lokalen
Optionsdatei an, zum Beispiel indem Sie folgende Zeilen in
/etc/my.cnf
speichern:
[mysqld] socket=/path/to/socket [client] socket=/path/to/socket
Sie geben auf der Kommandozeile für
mysqld_safe und beim Ausführen von
Clientprogrammen eine --socket
-Option an.
Sie stellen die Umgebungsvariable
MYSQL_UNIX_PORT
auf den Pfad zur
Unix-Socketdatei ein.
Sie rekompilieren MySQL aus den Quelldateien so, dass ein
anderer Standardspeicherort für die Unix-Socketdatei
festgelegt wird. Den Dateipfad definieren Sie mit der Option
--with-unix-socket-path
, wenn Sie
configure ausführen. Siehe auch
Abschnitt 2.8.2, „Typische configure-Optionen“.
Ob der neue Socketspeicherort funktioniert, können Sie überprüfen, indem Sie mit folgendem Befehl eine Serververbindung herstellen:
shell> mysqladmin --socket=/path/to/socket version
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.