Heim  >  Artikel  >  Datenbank  >  Analysieren Sie die Prinzipien und die Konfiguration der MySQL-Master-Slave-Replikation

Analysieren Sie die Prinzipien und die Konfiguration der MySQL-Master-Slave-Replikation

怪我咯
怪我咯Original
2017-04-06 18:10:551459Durchsuche

Arbeitsprinzipdiagramm:

Analysieren Sie die Prinzipien und die Konfiguration der MySQL-Master-Slave-Replikation

Prinzip der Master-Slave-Replikation:

Punkte Für die synchrone Replikation und die asynchrone Replikation ist der größte Teil der eigentlichen Replikations--Architektur eine 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). > und gibt es an den IO-Prozess des Slaves zurück. 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

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

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   #忽略因复制出现的所有错误

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

/etc/init.d/mysqld restart

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

mysql> mysql -u root -p123.com
mysql> GRANT REPLICATION SLAVE ON *.* to [email protected] identified by ‘1234.com’; #replication:复制

6 >

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

7. Starten Sie den Slave-Synchronisierungsprozess und überprüfen Sie den Status

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里面。

Die Werte von Slave_IO_Running und Slave_SQL_Running müssen YES sein, um anzuzeigen, dass der Status normal ist.
mysql> start slave;

Analysieren Sie die Prinzipien und die Konfiguration der MySQL-Master-Slave-Replikation8. Überprüfen Sie die Master-Slave-Synchronisierung

Erstellen Sie eine Datenbank

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

Beim Slave-Start gemeldeter Fehler: "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 ' ”

mysql> create database abc;
mysql> show databases;
+--------------------+
| Database   |
+--------------------+
| information_schema |
| abc    |
| mysql    |
| performance_schema |
| test    |
+--------------------+
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;

Zum Abschluss den Synchronisierungsprozess starten: Slave starten;

Das obige ist der detaillierte Inhalt vonAnalysieren Sie die Prinzipien und die Konfiguration der MySQL-Master-Slave-Replikation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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