LOAD DATA FROM MASTER
Diese Anweisung erstellt eine Momentaufnahme des Masters und
kopiert diese auf den Slave. Sie aktualisiert die Werte von
MASTER_LOG_FILE
und
MASTER_LOG_POS
, sodass der Slave die
Replikation an der korrekten Position startet.
Ausschlussregeln für Tabellen und Datenbanken, die mit den
Optionen --replicate-*-do-*
und
--replicate-*-ignore-*
angegeben werden,
werden beachtet. --replicate-rewrite-db
wird
hingegen nicht berücksichtigt, weil ein
Benutzer mit dieser Option eine nichteindeutige Zuordnung wie
--replicate-rewrite-db="db1->db3"
oder
--replicate-rewrite-db="db2->db3"
vornehmen könnte, was den Slave beim Laden der Tabellen vom
Master verwirren würde.
Die Verwendung dieser Anweisung hängt von den folgenden Bedingungen ab:
Sie funktioniert nur bei
MyISAM
-Tabellen. Der Versuch, eine
Tabelle anderen Typs zu laden, führt zu folgendem Fehler:
ERROR 1189 (08S01): Net error reading from master
Sie erwirkt während der Aufzeichnung der Momentaufnahme eine globale Lesesperre auf dem Master, wodurch während des Ladevorgangs Updates auf dem Master unterbunden werden.
Wenn Sie große Tabellen laden, müssen Sie die Werte von
net_read_timeout
und
net_write_timeout
unter Umständen sowohl
auf dem Master- als auch auf den Slave-Servern erhöhen. Siehe
auch Abschnitt 5.2.2, „Server-Systemvariablen“.
Beachten Sie, dass LOAD DATA FROM MASTER
keine Tabellen aus der
mysql
-Datenbank kopiert. Dies erleichtert
die Einrichtung verschiedener Benutzer und Berechtigungen auf
dem Master und dem Slave.
Um LOAD DATA FROM MASTER
verwenden zu
können, benötigt das Replikationskonto, welches zur
Verbindung mit dem Master-Server verwendet wird, die
Berechtigungen RELOAD
und
SUPER
auf dem Master und die Berechtigung
SELECT
für alle Master-Tabellen, die Sie
laden wollen. Alle Master-Tabellen, für die der Benutzer die
Berechtigung SELECT
nicht hat, werden von
LOAD DATA FROM MASTER
ignoriert. Dies liegt
daran, dass der Master sie vor dem Benutzer verbirgt:
LOAD DATA FROM MASTER
ruft SHOW
DATABASES
auf, um die zu ladenden Master-Datenbanken
in Erfahrung zu bringen; SHOW DATABASES
aber gibt nur Datenbanken zurück, für die der Benutzer
Berechtigungen hat. Siehe auch
Abschnitt 13.5.4.7, „SHOW DATABASES
“. Auf der Slave-Seite
benötigt der Benutzer, der LOAD DATA FROM
MASTER
absetzt, Berechtigungen zum Löschen und
Erstellen der Datenbanken und Tabellen, die kopiert werden.
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.