Heim  >  Artikel  >  Datenbank  >  Tutorial zur MySQL 5.7-Docker-Master-Slave-Replikationsarchitektur_MySQL

Tutorial zur MySQL 5.7-Docker-Master-Slave-Replikationsarchitektur_MySQL

WBOY
WBOYOriginal
2016-09-09 08:13:391096Durchsuche

Teilen Sie das Tutorial zur MySQL 5.7-Docker-Master-Slave-Replikationsarchitektur als Referenz. Der spezifische Inhalt ist wie folgt

Umgebungsversion:
MySQL: 5.7.13
Docker: 1.11.2
CentOS: 7.1

1. Installieren Sie zunächst zwei MySQLs auf zwei physischen Maschinen Die Befehle lauten wie folgt

Der Code lautet wie folgt:

docker pull mysql:5.7.13
docker run --name anuo-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qaz.00JK -d mysql:5.7.13


2. Erstellen Sie ein Kopierkonto in der Hauptdatenbank

Der Code lautet wie folgt:

GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'192.168.2.103' IDENTIFIED BY 'qaz.00JK';


Das kopierte Konto lautet: rep1
Die IP der angegebenen Slave-Bibliothek muss sein: 192.168.2.103
Das Kopierpasswort lautet: qaz.00JK

3. Ändern Sie die Konfigurationsdatei der Hauptbibliothek (Ärgerlich, es sollte eine bequemere Möglichkeit geben, sie zu ändern)

3.1 Kopieren Sie zunächst die Konfigurationsdatei vom Docker in das Host-/Stammverzeichnis:

docker cp anuo-mysql:/etc/mysql/my.cnf /root

3.2 Öffnen Sie my.cnf auf dem Host und fügen Sie

am Ende des [mysqld]-Knotens hinzu

log-bin=mysql-bin
Server-ID=1

3.3 Laden Sie diese Datei dann auf Docker MySQL hoch und überschreiben Sie sie

docker cp /root/my.cnf anuo-mysql:/etc/mysql/my.cnf

3.4 Starten Sie den Docker von MySQL neu, damit die Konfiguration wirksam wird
Docker-Neustart anuo-mysql

4. Ändern Sie die Konfigurationsdatei der Slave-Bibliothek

Wie Schritt 3, der einzige Unterschied ist
Server-ID=2

5. Starten Sie die Sicherung. Führen Sie den folgenden Befehl in der Hauptdatenbank aus, um alle Tabellen in der Hauptdatenbank in einen schreibgeschützten und nicht beschreibbaren Zustand zu versetzen, um eine Datenkonsistenz zwischen den Tabellen zu erreichen Master- und Slave-Datenbanken

Tabellen mit Lesesperre leeren

6. Sichern Sie die Datenbank der Hauptdatenbank und stellen Sie sie aus der Slave-Datenbank wieder her

Es ist sehr praktisch, Navicat für MySQL zu verwenden

7. Geben Sie nach der Wiederherstellung der Slave-Bibliothek die Lesesperre der Hauptbibliothek frei, damit die Hauptbibliothek die Schreibberechtigung wiederherstellen kann

Tabellen entsperren;

8. Konfigurieren Sie die Slave-Bibliothek für die Verbindung mit der Hauptbibliothek und führen Sie sie auf der Slave-Bibliothek aus

CHANGE MASTER TO 
MASTER_HOST='192.168.2.108', 
MASTER_PORT=3306, 
MASTER_USER='rep1', 
MASTER_PASSWORD='qaz.00JK', 
MASTER_LOG_FILE='mysql-bin.000002', 
MASTER_LOG_POS=898;

Die letzten beiden Punkte
MASTER_LOG_FILE und MASTER_LOG_POS
Führen Sie in der Hauptbibliothek den Befehl SHOW MASTER STATUS aus, um
zu erhalten Die entsprechenden Felder sind Datei und Position

9. Starten Sie den Slave-Thread in der Slave-Bibliothek, um die Synchronisierung zu starten
START SLAVE;

10. Überprüfen Sie den Synchronisierungsstatus in der Slave-Bibliothek
Slave-Status anzeigen
Wenn Sie das Feld Slave_Io_State sehen:

Warten darauf, dass der Master ein Ereignis sendet ...
Dann war es erfolgreich!!! !

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich sein wird, und ich hoffe, dass Sie mich sehr unterstützen werden.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn