Master-Slave-Synchronisationsprozess (Prinzip):
master
zeichnet Änderungen in der binären Protokolldatei (Binärprotokoll) auf, d. h. der von log-bin in der Konfigurationsdatei angegebenen Datei. Diese Datensätze werden als binäre Protokollereignisse bezeichnet. master
将变动记录到二进制日志文件(binary log)中,即配置文件中 log-bin 指定的文件,这些记录叫做二进制日志事件(binary log events);
master
将二进制日志文件发送给 slave;
slave
通过 I/O 线程读取文件中的内容写到 relay 日志中;
slave
执行 relay 日志中的事件,完成数据在本地的存储。
搭建主从需要注意的事项:
主从服务器操作系统版本和位数一致;
Master
和 Slave
数据库版本要一致;
Master 和 Slave 数据库中的数据要一致;
Master 开启二进制日志, Master 和 Slave 的 server_id 在局域网内必须唯一。
修改 master 的配置( my.cnf)加入下面的内容:
[mysqld] log-bin=mysql-bin # id 必须唯一!!! server-id=1
重启 master:
systemctl restart mysql
在 master 中创建用于主从同步的用户:
mysql> # 创建用户 mysql> CREATE USER 'hugh'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; mysql> # 授权用户 mysql> GRANT REPLICATION SLAVE ON *.* TO 'hugh'@'%'; mysql> # 刷新权限 mysql> FLUSH PRIVILEGES;
查看主服务器状态:
show master status;
记录下 File
和 Position
的值,之后要用到。
修改slave 的配置( my.cnf)加入下面的内容:
[mysqld] # id 必须唯一!!! server-id=2
重启 slave:
systemctl restart mysql
登录 MySQL 并运行以下命令,设置主节点参数:
mysql> CHANGE MASTER TO MASTER_HOST='master的IP地址', MASTER_USER='hugh', MASTER_PASSWORD='123456', MASTER_LOG_FILE='binlog.000006', MASTER_LOG_POS=856;
最后两行就是我们记录下的 File
和 Position
master
Binäre Protokolldatei an Slave senden;
Das obige ist der detaillierte Inhalt vonSo richten Sie den Master-Slave-Synchronisationsvorgang in MySQL ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!slave </li > code>Lesen Sie den Inhalt der Datei über den E/A-Thread und schreiben Sie ihn in das Relay-Protokoll im Relay-Protokoll, vollständige Datenspeicherung lokal. </strong></li></ul></p><p> Was beim Aufbau eines Master-Slave zu beachten ist: <strong></strong></p>#🎜🎜##🎜🎜# Master-Slave Die Server-Betriebssystemversion und die Anzahl der Bits müssen konsistent sein Versionen müssen konsistent sein; #🎜 🎜#</li>#🎜🎜##🎜🎜#Die Daten in den Master- und Slave-Datenbanken müssen konsistent sein; #🎜🎜#</li>#🎜🎜##🎜🎜#Master Aktiviert Binärprotokolle und die Server-ID von Master und Slave muss innerhalb des LANs eindeutig sein. #🎜🎜#</li></ul>#🎜🎜# 2. MySQL-Master-Slave-Konstruktion #🎜🎜#<h4>2.1 Operationen auf dem Master</h4>#🎜🎜##🎜🎜#Ändern Sie die Konfiguration von master (my.cnf) Fügen Sie den folgenden Inhalt hinzu: #🎜🎜##🎜🎜#<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:sql;">mysql> show slave status\G;</pre><div class="contentsignin">Nach dem Login kopieren</div></div>#🎜🎜##🎜🎜# Master neu starten: #🎜🎜##🎜🎜#<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:sql;">Slave_IO_Running: Yes
Slave_SQL_Running: Yes</pre><div class="contentsignin">Nach dem Login kopieren</div></div>#🎜🎜##🎜🎜# im Master Erstellen Sie einen Benutzer für die Master-Slave-Synchronisierung: #🎜🎜##🎜🎜#rrreee#🎜🎜##🎜🎜#Master-Serverstatus anzeigen: #🎜🎜##🎜🎜#rrreee#🎜🎜#<code>Datei aufzeichnen Die Werte von
und Position
werden später verwendet. #🎜🎜#2.2 Betrieb am Slave
#🎜🎜##🎜🎜#Ändern Sie die Slave-Konfiguration (my.cnf) und fügen Sie den folgenden Inhalt hinzu: #🎜🎜##🎜🎜#rrreee#🎜🎜 ##🎜🎜#Slave neu starten: #🎜🎜##🎜🎜#rrreee#🎜🎜##🎜🎜#Melden Sie sich bei MySQL an und führen Sie den folgenden Befehl aus, um die Master-Knotenparameter festzulegen: #🎜🎜##🎜🎜#rrreee #🎜🎜# Die letzten beiden Zeilen sind die Werte von File
und Position
, die wir aufgezeichnet haben. #🎜🎜##🎜🎜##🎜🎜#Überprüfen Sie den Status der Master-Slave-Synchronisierung: #🎜🎜##🎜🎜#rrreee#🎜🎜##🎜🎜#Überprüfen Sie die folgenden Informationen. Wenn alle „Ja“ lauten, bedeutet dies Die Einrichtung ist erfolgreich:# 🎜🎜##🎜🎜#rrreee