MySQL Replikation einrichten

Einleitung

Im Folgenden wird beschrieben, wie eine Replikation zwischen zwei MySQL-Servern eingerichtet wird.

Vorbereitung Master-Server

Gemäß MySQL-Referenzhandbuch wird empfohlen, ein separates Konto ausschließlich für die Replikationen zu erstellen, dieses benötigt die Berechtigung REPLICATION SLAVE. Nachfolgend wird ein Konto repl erstellt, und diesem die Berechtigung REPLICATION SLAVE erteilt. Zugriff erhalten Clients der Domain your.domain; das Passwort lautet password.

Im Anschluss werden die Datentabellen gesperrt, dann wird der Status des Master abgefragt:

Die jetzt angezeigten Werte für File und Position sind später relevant. Ein Dump wird erstellt. Die Daten werden auf den Slave kopiert.

Vorbereitung Slave-Server

Nach dem Wechsel auf den Slave, sollte der Dump im Verzeichnis /tmp liegen. Von dort wird er in die Datenbank importiert.

 Konfiguration des Master-Servers

Die Konfiguration erfolgt in der Datei my.cnf. Es wird das Binärlogging aktiviert und dem Master eine ID zugewiesen:

Ferner sollen hier auch zur Gewährleistung größtmöglicher Sicherheit zwei Optionen aktiviert werden:

Anschließend den Master wieder starten.

Konfiguration des Slave-Servers

Zunächst wird der Slave gestoppt.

Dann wird die Konfiguration der my.cnf angepasst, hinzugefügt wird server-id:

Bei mehreren Slaves wird die ID jeweils um eins erhöht. Jetzt wird der Slave-Server wieder gestartet.

Per SQL wird mitgeteilt, welcher Server als Master fungiert:

Die Werte müssen entsprechend ergänzt werden, wobei recorded_log_file_name und recorded_log_position zuvor mittels SHOW MASTER STATUS abgefragt wurden (siehe oben). Wurde hier ein leeres Ergebnis geliefert so sind die Werte “ (zwei Hochkomma Leerstring für File) und 4 (Position) einzutragen.

Danach kann es losgehen:

That’s it!

Troubleshooting

Sollten Probleme auftauchen sind zunächst die Logfiles interessant. Darüberhinaus kann mysqld mit der Option –log-warnings gestartet werden, um nähere Informationen zu erhalten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.