Heim  >  Artikel  >  Datenbank  >  Das Prinzip und die Konfiguration der MySQL-Master-Slave-Replikation

Das Prinzip und die Konfiguration der MySQL-Master-Slave-Replikation

黄舟
黄舟Original
2017-02-22 11:02:341284Durchsuche



Arbeitsprinzipdiagramm:

Das Prinzip und die Konfiguration der MySQL-Master-Slave-Replikation

Prinzip der Master-Slave-Replikation:

ist in synchrone Replikation und asynchrone Replikation unterteilt. Der größte Teil der tatsächlichen Replikationsarchitektur ist asynchrone Replikation. Der grundlegende Prozess der Replikation ist wie folgt:

1 Der IO-Prozess auf dem Slave stellt eine Verbindung zum Master her und fordert den Protokollinhalt von der angegebenen Position der angegebenen Protokolldatei (oder vom Anfang des Protokolls an). );

2). Nachdem der Master die Anfrage vom IO-Prozess des Slaves erhalten hat, liest der für die Replikation zuständige IO-Prozess die Protokollinformationen nach dem angegebenen Protokollspeicherort entsprechend den Anforderungsinformationen und gibt sie an den Slave zurück IO-Prozess. Zusätzlich zu den im Protokoll enthaltenen Informationen umfassen die zurückgegebenen Informationen auch den Namen der Bin-Log-Datei und den Speicherort des Bin-Logs, den die zurückgegebenen Informationen auf der Master-Seite erreicht haben;

3) . Der E/A-Prozess des Slaves empfängt nach dem Empfang der Informationen den empfangenen Protokollinhalt am Ende der Relay-Log-Datei auf der Slave-Seite und zeichnet den Dateinamen und den Speicherort des gelesenen Bin-Logs auf der Master-Seite auf Master-Info-Datei, damit sie beim nächsten Abruf gelesen werden kann, können Sie dem Master klar mitteilen: „Ich muss von der Stelle in einem bestimmten Bin-Protokoll ausgehen, um den folgenden Inhalt zu protokollieren. Bitte senden Sie ihn mir.“ 🎜>

4). auf sich selbst hin ausgeführt.

Umgebungsbeschreibung

  • Betriebssystem: CentOS6.3_x64

  • Master-Server-Master: 192.168. 0.202

  • Slave vom Server: 192.168.0.203

1. MySQL-Master-Slave-Replikation

1. Master Ab der Installation von MySQL ist die Version konsistent

Wir haben MySQL-5.5.30.tar.gz installiert, hier weggelassen...

2 Master- und Slave-Server

master服务器配置:
vi /usr/local/mysql/etc/my.cnf
[mysqld]
server-id=202     #设置服务器唯一的id,默认是1,我们设置ip最后一段,slave设置203
log-bin=mysql-bin # 启用二进制日志
binlog-ignore-db = mysql,information_schema  #忽略写入binlog的库

slave服务器配置:
vi /usr/local/mysql/etc/my.cnf
[mysqld]
server-id=203
replicate-do-db = abc     #只同步abc库
slave-skip-errors = all   #忽略因复制出现的所有错误

3. Starten Sie den Master-Slave-Server MySQL neu

/etc/init.d/mysqld restart

4. Erstellen Sie ein Konto auf dem Master-Server und Slave autorisieren

mysql> mysql -u root -p123.com
mysql> GRANT REPLICATION SLAVE ON *.* to ‘sync’@‘192.168.1.2’ identified by ‘1234.com’; #replication:复制

5. Überprüfen Sie den Status der Master-Datenbank

mysql> show master status;
+------------------+----------+--------------+------------------+
| File  | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 263 |  |   |
+------------------+----------+--------------+------------------+

6 >

mysql> change master to
 -> master_host='192.168.0.202',
 -> master_user='sync',
 -> master_password='1234.com',
 -> master_log_file='mysql-bin.000002',
 -> master_log_pos=263;
#Log和pos是master上随机获取的。这段也可以写到my.cnf里面。
7. Starten Sie den Slave-Synchronisierungsprozess und überprüfen Sie den Status

mysql> start slave;

Das Prinzip und die Konfiguration der MySQL-Master-Slave-ReplikationDie Werte von Slave_IO_Running und Slave_SQL_Running müssen YES sein, um anzuzeigen, dass der Status normal ist.

8. Überprüfen Sie die Master-Slave-Synchronisierung

Erstellen Sie die Datenbank abc in Master-MySQL und überprüfen Sie dann von MySQL aus, ob die Synchronisierung erfolgreich war!

Beim Slave-Start gemeldeter Fehler:
mysql> create database abc;
mysql> show databases;
+--------------------+
| Database   |
+--------------------+
| information_schema |
| abc    |
| mysql    |
| performance_schema |
| test    |
+--------------------+

"Last_IO_Error: Schwerwiegender Fehler 1236 vom Master beim Lesen von Daten aus dem Binärprotokoll: 'Der erste Protokolldateiname konnte in der Binärprotokoll-Indexdatei nicht gefunden werden ' ”

Lösung: Der Hauptgrund für den Fehler ist, dass der vom Slave zum Master eingestellte Binärdateiname oder Pos-Wert nicht übereinstimmt!

Löschen Sie zuerst die Protokolle und überprüfen Sie den Status der Master-Datenbank. Sehen Sie sich den Namen und den Positionswert der Protokolldatei an.

Führen Sie dann Folgendes aus: ÄNDERN MASTER TO MASTER_LOG_FILE ='binärer Protokollname',MASTER_LOG_POS=Wert;

Starten Sie schließlich den Synchronisierungsprozess: Starten Sie den Slave;

Das Obige ist das Prinzip und die Konfiguration der MySQL-Master-Slave-Replikation Achten Sie auf weitere verwandte Inhalte auf der chinesischen PHP-Website (www.php.cn)!

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