366 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
if (1)
Unter Windows k¨onnen Sie interne symbolische Links auf Verzeichnisse benutzen, indem Sie
MySQL mit -DUSE_SYMDIR kompilieren. Das erlaubt Ihnen, verschiedene Datenbanken auf
verschiedene Platte zu legen. Siehe Abschnitt 3.6.2.5 [Windows symbolic links], Seite 106.
6.6.1.2 Benutzung symbolischer Links f¨ur Tabellen
Vor MySQL 4.0 konnten Sie Tabellen nicht per SymLink verkn¨upfen, wenn Sie nicht sehr
sorgf¨altig dabei vorgingen. Das Problem liegt darin, dass bei ALTER TABLE, REPAIR TABLE
oder OPTIMIZE TABLE auf eine per Symlink verkn¨upfte Datei die SymLinks entfernt und
durch die Original-Dateien verkn¨upft werden. Das geschieht, weil beim obigen Befehl eine
tempor¨are Datei im Datenbank-Verzeichnis erzeugt wird, und wenn der Befehl ausgef¨uhrt
ist, die Original-Datei durch die tempor¨are Datei ersetzt wird.
Sie sollten Tabellen auf Systemen, die keinen vollst¨andig funktionierenden realpath()-
Aufruf haben, nicht per SymLink verkn¨upfen. (Zumindest Linux und Solaris unterst¨utzen
realpath().)
In MySQL 4.0 werden Symlinks nur f¨ur MyISAM-Tabellen vollst¨andig unterst¨utzt. Bei an-
deren Tabellentypen erhalten Sie wahrscheinlich merkw¨urdige Probleme, wenn Sie einen der
obigen Befehle ausf¨uhren.
Die Handhabung symbolischer Links in MySQL 4.0 funktioniert auf folgende Art (das gilt
meist nur f¨ur MyISAM-Tabellen):
• Im Daten-Verzeichnis liegen immer die Tabellendefinitionsdatei und die Daten-/Index-
Dateien.
• Sie k¨onnen die Index-Datei und die Daten-Datei unabh¨angig voneinander auf unter-
schiedliche Verzeichnisse per SymLink verkn¨upfen.
• Das Erzeugen der SymLinks kann durch das Betriebssystem (wenn mysqld nicht l¨auft)
oder mit dem INDEX/DATA directory="pfad-zum-verzeichnis"-Befehl in CREATE
TABLE durchgef¨uhrt werden. Siehe Abschnitt 7.5.3 [CREATE TABLE], Seite 456.
• myisamchk ersetzt keinen Symlink mit der Index-/Datendatei, sondern arbeitet direkt
mit den Dateien, auf die die SymLinks verweisen. Jegliche tempor¨are Dateien werden
im selben Verzeichnis erzeugt, wo die Daten-/Index-Datei ist.
• Wenn Sie eine Tabelle l¨oschen, die Symlinks benutzt, werden sowohl der Symlink als
auch die Datei, auf die der SymLink zeigt, gel¨oscht. Das ist ein guter Grund daf¨ur,
mysqld
NICHT als Root laufen zu lassen und niemandem zu erlauben, Schreibzugriff
auf die MySQL-Datenbankverzeichnisse zu haben.
• Wenn Sie eine Tabelle mit ALTER TABLE RENAME umbenennen und nicht die Datenbank
¨andern, wird der Symlink im Datenbank-Verzeichnis auf den neuen Namen umbenannt
und die Daten-/Index-Datei wird entsprechend umbenannt.
• Wenn Sie ALTER TABLE RENAME benutzen, um eine Tabelle in eine andere Datenbank
zu verschieben, wird die Tabelle in das andere Datenbank-Verzeichnis verschoben und
die alten SymLinks und die Dateien, auf die sie zeigen, werden gel¨oscht.
• Wenn Sie keine Symlinks benutzen, sollten Sie die --skip-symlink-Option f¨ur mysqld
benutzen, damit niemand eine Datei ausserhalb des mysqld Daten-Verzeichnisses
l¨oschen oder umbenennen kann.
Comentarios a estos manuales