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';
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 hinzulog-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.