Anhang A: Probleme und h¨aufige Fehler 639
Dateien ist, dass Sie eine große tempor¨are Datei nicht sehen, die das Dateisystem auff¨ullt,
in dem sich das Verzeichnis f¨ur tempor¨are Dateien befindet.
Zum Sortieren (ORDER BY oder GROUP BY) benutzt MySQL normalerweise ein oder zwei
tempor¨are Dateien. Der maximal ben¨otigte Speicherplatz ist:
(laenge_dessen_was_sortiert_wird + groesse_von(datenbank_zeiger)) *
anzahl_uebereinstimmender_zeilen * 2
groesse_von(datenbank_zeiger) ist ¨ublicherweise 4, kann in Zukunft aber f¨ur wirklich
große Tabellen anwachsen.
Bei einigen SELECT-Anfragen erzeugt MySQL zus¨atzliche tempor¨are SQL-Tabellen. Diese
sind nicht versteckt und haben Namen der Form ‘SQL_*’.
ALTER TABLE erzeugt eine tempor¨are Tabelle im selben Verzeichnis, in dem sich die Original-
Tabelle befindet.
A.4.5 Wie Sie die MySQL-Socket-Datei ‘/tmp/mysql.sock’ sch¨utzen
oder ¨andern
Wenn Sie Probleme damit haben, dass jeder beliebige den MySQL-Kommunikations-Socket
‘/tmp/mysql.sock’ l¨oschen kann, k¨onnen Sie unter den meisten Versionen von Unix Ihr
‘/tmp’-Dateisystem sch¨utzen, indem Sie darauf das sticky Bit setzen. Loggen Sie sich als
root ein und tun Sie folgendes:
shell> chmod +t /tmp
Das sch¨utzt Ihr ‘/tmp’-Dateisystem, so dass Dateien nur von ihren Besitzern oder dem
Superuser (root) gel¨oscht werden k¨onnen.
Sie k¨onnen ¨uberpr¨ufen, ob das sticky Bit gesetzt ist, indem Sie ls -ld /tmp ausf¨uhren.
Wenn das letzte Berechtigungsbit t ist, ist das Bit gesetzt.
Sie k¨onnen den Speicherort ¨andern, den MySQL benutzt, um die Socket-Datei Socket-Datei
abzulegen, indem Sie eine der folgenden Prozeduren ausf¨uhren:
• Geben Sie den Pfad in einer globalen oder lokalen Optionsdatei an. Beispielsweise
k¨onnen Sie in /etc/my.cnf eintragen:
[client]
socket=pfad-fuer-socket-datei
[mysqld]
socket=pfad-fuer-socket-datei
Siehe Abschnitt 5.1.2 [Option files], Seite 175.
• Geben Sie den Pfad auf der Kommandozeile f¨ur safe_mysqld und die meisten Clients
mit der --socket=pfad-fuer-socket-datei-Option an.
• Geben Sie den Pfad zum Socket in der MYSQL_UNIX_PORT-Umgebungsvariablen an.
variable.
• Definieren Sie den Pfad mit der configure-Option --with-unix-socket-path=pfad-
fuer-socket-datei. Siehe Abschnitt 3.3.3 [configure options], Seite 71.
Mit folgendem Befehl k¨onnen Sie testen, ob der Socket funktioniert:
shell> mysqladmin --socket=/pfad/zu/socket version
Kommentare zu diesen Handbüchern