Einrichten MySQL-Datenbank-Replikation

Es geht immer um Daten. Was ist die Verwendung eines Systems, ohne die Daten, die sie stützt sich auf?

Einrichten einer Datenbank-Replikation ist einer von vielen Schritten, die ergriffen werden, um Daten zu erhalten, verhindert den Verlust und macht Disaster Recovery erleichtert werden sollte.

Glücklicherweise ist es einfach mit MySQL. So nehmen wir an, wir haben zwei Server mit MySQL, rief einen host1 und die anderen host2.
Die Replikation kann entweder Master-Master oder Master-Slave werden. Mit einem Master-Slave-Replikation, der Sklave immer repliziert, was der Master-Datenbank ausgeführt wird. Im Master-Master-Replikation, die beide Datenbanken mit jeweils anderen zu synchronisieren.

Für die Zwecke dieses Tutorial, ist ein Master-Slave (hier host1 und host2 jeweils) Szenario untersucht.

Zunächst öffnen Sie die mysql config-Datei auf host1 (in der Regel finden Sie unter / etc / my.cnf auf linux und c: \ windows \ my.ini unter Windows), und entfernen (entfernen Sie das Hash of) die folgende Zeile:

# Skip-networking

Zweitens müssen Sie die Datei anzugeben, wo der Meister (host1) sollte log (write) der Abfragen ist es ausgeführt wird. Dies ermöglicht es den Slave (host2) auf diese Fragen lesen und ausführen sie als gut. Als solche, fügen Sie eine Zeile wie diese:

log-bin = / path / to / mysql-bin.log

wo der Wert über der Pfad zur Datei, wo MySQL tun sollte, die Protokollierung. Es könnte sehr gut ein eigenes Verzeichnis oder verwenden Sie die Standard-MySQL-Installationsverzeichnis (zB c: \ program files \ mysql \ unter Windows oder / var / lib / mysql auf linux)

Dann müssen Sie den Namen der Datenbank in Frage angeben. Also, wenn Sie einrichten möchten Replikation für eine Ihrer MySQL-Datenbanken als "work_data ', dann ist dies die Linie, die Sie benötigen, um Ihre MySQL Config hinzu:

binlog-do-db = work_data

Schließlich können Sie mit einem Server-ID angeben müssen, die besagt, dass dies der Master-Server

server-id = 1

Speichern Sie die config-Datei und beenden.
Nun müssen Sie geben host2 die Erlaubnis, die Daten zu replizieren. Als solche benötigt eine MySQL-Abfrage auf dem Master ausgestellt werden.

Also auf host1, um die MySQL-Prompt (mysql-u root-pyour_root_password) (oder PHPMyAdmin, etc ... was auch immer Sie benutzen) anmelden, und die folgende Anweisung:

gewähren Replikationsslave ON *.* TO 'username'@'%' identifiziert durch' password ';

Achten Sie darauf, den Benutzernamen und das Passwort mit einem Berechtigungsnachweis Ihrer Wahl ersetzen. Halten Sie das einfache Anführungszeichen though.
Das%-Zeichen bedeutet, dass der Slave kann von einem beliebigen Host zu verbinden. Wenn du es sicherer sein soll, ersetzen, die mit host2 (der Sklave der Hostname).

Nach all den oben geschehen ist, starten Sie den MySQL-Dienst (Service mysqld neu starten (Linux) oder net stop mysql, net start mysql (unter Windows)).

Wenn die Datenbank Daten früher, stellen Sie sicher, werfen Sie es und laden Sie es auf dem Slave, bevor Sie eine der oben genannten. Dumping von Daten ist kinderleicht und kann von dem Wechseln auf die MySQL-Verzeichnisses bin und die Ausgabe erfolgen:

mysqldump-Q-u root-pyour_root_password databasename> database_dump.sql

(Ersetzen Sie das Passwort und den Datenbanknamen mit dem richtigen Login). Die gesamte Datenbank wird nun in der Datei mit dem Namen database_dump.sql werden

Um es auf host2, cd, um die MySQL-bin Verzeichnis und importieren:

mysql-u root-pyour_root_password databasename </ path / to / die / Datei / database_dump.sql

Die MySQL-Konfigurationsdatei auf host2 sollte die folgenden Zeilen:

server-id = 2
master-host = host1
master-user = username
master-password = Passwort
master-port = 3306

wo host1 ist der Meister der Hostname / IP und Benutzername und Passwort sind die Zugangsdaten die Sie bei der Gewährung Replikation Zugriff ein paar Schritte vor. 3306 ist die Portierung von MySQL läuft auf (das ist die Standardeinstellung)

Dann starten Sie den Slave-Verfahren auf host2 durch Ausgabe von auf der MySQL-Eingabeaufforderung ein:

Start Sklave;

Um sicherzustellen, dass die Replikation funktioniert, setzen Sie die folgende SQL-Abfrage auf host1:

SHOW SLAVE STATUS \ G

(Slave_SQL_Running und Slave_IO_Running mitteilen müssen "Ja")

Viel Glück

7 Kommentare

Robert 17. September 2008 um 10.49 Uhr

Große, genau das, was ich brauchte. Jetzt ... Ist es möglich, mehrere Master-Geräte setzen in nur einem Slave-Server repliziert werden?. Ich frage dies, weil im Versuch zur Einrichtung eines Active-Stanby Topologie, in der, wenn einer der Masters Fails es ersetzen könnte vorübergehend von der Slave-Server. Dank

admin 17. September 2008 um 11.25 Uhr

Lieber Robert,
Was über das Ausführen mehrerer MySQL-Dienste auf dem Slave-Host? Jeder würde auf einem anderen Port laufen und wäre abhängig von einem anderen Master.

Robert 23. September 2008 um 13.44 Uhr

Das ist Genius! , Obwohl ich muss die Art und Weise die Benutzer die Verbindung zur Datenbank zu ändern, um einen nahtlosen Übergang in die Falle eines Ausfalls zu machen.

admin 23. September 2008 um 04.58 Uhr

Sie können Setup eine lokale DNS-Dienst, und stellen Anwendern einen Hostnamen (in normalen Fällen zeigte auf den Master), um Ihre Service-Zugang.
Im Falle des Scheiterns, ändern Sie einfach den DNS-Eintrag des Hostnamen an den Slave-Maschine zeigen.
Benutzer würden nicht bemerkt, die sich ändern, wenn Sie die IP, die Hostnamen auflöst ändern.

host2 1. April 2010 auf 8.02

[...] Macht es möglich, Knoten hinzufügen oder entfernen aus dem Cluster, ohne neu zu konfigurieren clients.Tips und Tricks Einrichten MySQL-Datenbank replicationSo nehmen wir an, wir haben zwei Server mit MySQL, rief einen host1 und die anderen host2. ... Wenn Sie [...]

natürlichen suppliments 29. Dezember 2011 auf 5.56

Ich habe ein paar der Artikel auf Ihrer Website jetzt lesen, und Ich mag Ihren Stil des Bloggens. Ich habe es zu meinen Favoriten Blog-Site-Liste und werden wieder die Überprüfung bald. Bitte überprüfen Sie meine Seite so gut und lass es mich wissen, was Sie denken.

natürlichen suppliments

Medizin-Forum 4. Januar 2012 um 15.54 Uhr

Ich genieße einfach das Lesen Ihrer Weblogs. Einfach wollte Ihnen mitteilen, dass Sie Leute wie mich, deine Arbeit zu schätzen. Definitiv ein großer Beitrag. Hut ab vor Ihnen! Die Informationen, die Ihnen zur Verfügung gestellten ist sehr hilfreich.

Hinterlasse einen Kommentar

Ihr Kommentar