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
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.
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!