目錄
- 思路
- 主機配置
- 從機1配置
- 從機2配置
- 配置主從關聯
- 測試數據同步
- 常見問題
本文主要介紹了MySQL配置主從服務器(一主多從),感興趣的可以了解一下
當前環(huán)境
Centos 7.6
Mysql 5.7
Centos 7.6 安裝MySQL 5.7 請參考:https://www.jb51.net/article/99965.htm
思路
![](/d/20211017/f34c9c33a0a26dd5e25ad434d8d8e3c0.gif)
![](/d/20211017/8284f988d69a386734eaead58010b67f.gif)
主機配置
修改conf
在 [mysqld] 后面換行追加配置,保存并退出
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index
重啟
systemctl restart mysqld.service
# 查看狀態(tài)
systemctl status mysqld.service
檢驗
mysql -u root -p
SHOW MASTER STATUS;
![](/d/20211017/c2bea5a392775acaba732102f5412a25.gif)
從機1配置
修改conf
在 [mysqld] 后面換行追加配置,保存并退出
server-id=2
relay-log=slave-01-relay-bin
relay-log-index=slave-01-relay-bin.index
重啟
systemctl restart mysqld.service
# 查看狀態(tài)
systemctl status mysqld.service
從機2配置
修改conf
在 [mysqld] 后面換行追加配置,保存并退出
server-id=3
relay-log=slave-02-relay-bin
relay-log-index=slave-02-relay-bin.index
重啟
systemctl restart mysqld.service
# 查看狀態(tài)
systemctl status mysqld.service
配置主從關聯
主機配置
登錄主機mysql控制臺,創(chuàng)建用戶,授權并刷新。
mysql -u root -p
CREATE USER 'repl'@'%' IDENTIFIED BY 'Mysql57*';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'Mysql57*';
flush privileges;
![](/d/20211017/2ff95ccbb65ff6793299796266b0965e.gif)
從機配置
mysql -u root -p
# 這里我的主機IP是192.168.1.8
change master to master_host='192.168.1.8',master_port=3306,master_user='repl',master_password='Mysql57*',master_log_file='master-bin.000001',master_log_pos=0;
start slave;
#停止主從同步
#stop slave;
# \G 表示換行查看
show slave status \G;
若查看主從狀態(tài)提示The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.請參考常見問題
![](/d/20211017/3e8e9cc770dfe5d16fdb8455c53bb4cf.gif)
測試數據同步
這里筆者使用可視化工具Navicat ,讀者也可以使用其他工具,只是一個簡單的測試。
在主庫中新增庫 test-for-repl,查看從庫01、02是否有庫新增
在主庫 test-for-repl 新增表 test-create-table ,查看從庫01、02對于庫中是否有表新增在主庫 test-for-repl 表 test-create-table ,查看從庫01、02對于位置是否有數據
![](/d/20211017/089c53a550680ae9835e2729583ddcab.gif)
常見問題
從機查看主從同步狀態(tài)show slave status \G; 時報錯
The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
![](/d/20211017/053d617342fe45fe506109922d113d32.gif)
原因
這里筆者使用了 VMware 軟件創(chuàng)建了1個虛擬機安裝 Centos7.6 + MySQL5.7,然后使用該虛擬機克隆生成了另外兩個虛擬機當從從庫機器,導致3臺虛擬機上的MySQL啟動之后會生成相同的 UUID。
解決方案
找到MySQL的UUID,修改一個字符,重啟服務,然后登陸MySQL控制臺,開啟主從
find / -name 'auto.cnf'
vim /var/lib/mysql/auto.cnf
systemctl restart mysqld.service
mysql -u root -p
start slave;
# \G 表示換行查看
show slave status \G;
到此這篇關于MySQL配置主從服務器(一主多從)的文章就介紹到這了,更多相關MySQL 主從服務器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 在centos7上搭建mysql主從服務器的方法(圖文教程)
- CentOS服務器平臺搭建mysql主從復制與讀寫分離的方法
- CentOS服務器環(huán)境下MySQL主從同步配置方法
- linux下指定mysql數據庫服務器主從同步的配置實例
- Windows服務器下MySql數據庫單向主從備份詳細實現步驟分享
- mysql主從服務器配置特殊問題
- mysql 主從服務器的簡單配置
- mysql主從服務器同步心得體會