Dieser Artikel verwendet MySQL5.5 Centos6.5 64-Bit
1. Wenn beim Master-Server ein Problem auftritt, können Sie schnell zum Slave-Server wechseln.
2. Anwendungen mit geringen Echtzeitanforderungen oder seltenen Aktualisierungen können Abfragevorgänge auf dem Slave-Server durchführen, um den Zugriffsdruck auf den Master-Server zu verringern. Trennen Sie das Lesen und Schreiben von Daten, um den Ladeeffekt zu erzielen.
3. Datensicherungsvorgänge können auf dem Slave-Server durchgeführt werden, um Auswirkungen auf den Master-Server während des Sicherungszeitraums zu vermeiden.
Master-Slave-Replikationsprinzip:
Prinzipanalyse: Der Master-Server aktiviert das Binlog-Protokoll und der Slave-Server Verwenden Sie die vom Master-Server gewährten Benutzer, um das vom Master-Server generierte Binlog-Protokoll lokal zu lesen und in ein Relaylog-Protokoll umzuwandeln. Anschließend wird das Relaylog-Protokoll ausgeführt.
Master: 192.168.6.224
Slave: 192.168.6.222
1. Legen Sie den autorisierten Benutzer für den Slave-Server im Master-Server fest
Erstellen Sie im Master-Server einen Benutzer mit dem Namen user2 für den Slave-Server 192.168.6.222 und das Passwort lautet 123
mysql> ; grant all on *.* to user2@192.168.6.222, identifiziert durch „123“;
Parametererklärung:
grant:mysqlauthorization keyword
*.*: Alle Datenbanken und alle Tabellen
Überprüfen Sie, ob die Benutzerautorisierung erfolgreich ist:
mysql> show grants for user2@192.168.6.222;
Testen Sie, ob sich Benutzer2 mit Benutzer2 auf dem Slave-Server bei MySQL auf dem Master-Server anmelden kann
[root@localhost tmp]# mysql -user2 -p123 test -h192.168.6.224;
2. Öffnen Sie das Bin-Log-Protokoll des Hauptservers und legen Sie den Wert fest der Server-ID.
Ändern Sie die my.cnf-Konfigurationsdatei des Masterservers:
[mysqld] #开启mysql的bin-log日志 log-bin=mysql-bin #主服务器该值设置为1 server-id = 1
3. Setzen Sie das Bin-Log-Protokoll zurück: mysql> reset master;
Überprüfen Sie den neuesten Bin-Log-Protokollstatus, um zu sehen, ob er sich an der Startposition befindet: mysql> show master status;mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000 001 | 107 | | | +------------------+----------+--------------+------------------+
Sichern Sie die Master-Datenbankdaten
a. Daten sichern b. Bin-Log-Protokoll aktualisieren Hier verwenden wir die mysqldump-Methode, um die Daten zu sichern und verwenden das -l - F-Parameter zum direkten Setzen der Lesesperre beim Sichern der Daten. mysqldump -uroot -p111111 test -l -F > '/tmp/mysql_back/test.sql';5. Sichern Sie den Hauptserver. Daten werden an den Slave-Server gesendet. [root@localhost tmp]# scp mysql_back/test.sql 192.168.6.222:/tmp/ mysql_back/
6. Slave-Bin-Log-Protokoll auf dem Server zurücksetzen und die gesicherten Daten im Slave-Server verwendenmysql>
[root@localhost tmp]# mysql -uroot -p111111 test - v -f7. Konfigurieren Sie die my.cnf-Parameter im Slave Server
a. #Konfigurieren Sie den Slave-Server server-id =2 (Wenn es mehrere Slave-Server gibt, haben sie alle eine eindeutige Server-ID) server-id = 2
b. #Bin-Log-Protokoll aktivieren
log-bin=mysql-bin
c.#Konfigurieren Sie den Host, den Benutzernamen, das Passwort und die Portnummer, die synchronisiert werden müssen
d. Starten Sie MySQL neu, damit die Konfigurationsdatei wirksam wird
#配置需要同步的主机 master-host = 192.168.6.224 # The username the slave will use for authentication when connecting # to the master - required master-user = user2 # # The password the slave will authenticate with when connecting to # the master - required master-password = 123 # # The port the master is listening on. # optional - defaults to 3306 master-port = 3306[root@localhost tmp]# service mysqld restart Wenn Sie nicht können Starten Sie den MySQL-Server neu, indem Sie die Methode ändern. Sie können die folgende Methode verwenden 8. Überprüfen Sie den Slave-Status
mysql> change master to master_host="192.168.6.224", master_user="user2", master_password="123", master_port=3306, master_log_file="mysql-bin.000002",master_log_pos=107; mysql> slave start;
Master_Log_File: stellt den Namen dar der Protokolldatei, die für die Master-Slave-Synchronisierung auf dem Host verwendet wird,
mysql . row master .bin.relaybin.bin.Read_Master_Log_Pos: stellt die Position in der Protokolldatei dar, die das letzte Mal erfolgreich synchronisiert wurde. Wenn diese beiden Elemente nicht mit den zuvor auf dem Hauptserver angezeigten Werten für Datei und Position übereinstimmen, kann die Synchronisierung nicht korrekt durchgeführt werden.
3. Test
2. Überprüfen Sie den Slave-Synchronisierungsstatus
mysql> insert into t1 values(13); Query OK, 1 row affected (0.02 sec) mysql> insert into t1 values(14); Query OK, 1 row affected (0.01 sec) mysql> insert into t1 values(15); Query OK, 1 row affected (0.01 sec) mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000002 | 656 | | | +------------------+----------+--------------+------------------+
Hier können Sie sehen, dass die Position des Master-Servers und der Read_Master_Log_Pos-Wert des Slave-Servers gleich sind und Slave_IO_Running und Slave_SQL_Running Werte sind beide Ja. Auf diese Weise ist die Master-Slave-Konfiguration von MySQL erfolgreich.
mysql> show slave status \G;*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.6.224 Master_User: user2 Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 656 Relay_Log_File: localhost-relay-bin.000002 Relay_Log_Pos: 802 Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes
4. Allgemeine Befehle für die Master-Slave-Replikation
3. Slave-Status anzeigen 4. Bin-Log-Protokolle der Master-Datenbank anzeigen 5 um #dynamisch zur Hauptserverkonfiguration zu wechseln6. Prozessliste anzeigen;#Den laufenden Prozess der Slave-Datenbank anzeigen
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Master-Slave-Replikation beim MySQL-Lernen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!