《Windows Azure Platform 系列文章目錄》
在CentOS 6.10上設置了MySQL Master-Slave,記錄一下
主服務器 | 從服務器 | |
操作系統 | CentOS 6.10 | CentOS 6.10 |
MySQL版本 | 5.7 | 5.7 |
內網IP | 10.0.1.5 | 10.0.1.6 |
1.在主庫和從庫創建同步用戶:
grant replication slave, replication client on *.* to repl@'10.0.1.%' identified by 'Replica@123';
2.主庫配置
編輯mysql配置文件/etc/my.cnf,設定如下配置:
log-bin=mysql-bin binlog_format=mixed server-id = 1
3.從庫配置
在從庫上,創建文件夾路徑:/var/lib/mysql/mysql-relay-bin
編輯mysql配置文件/etc/my.cnf,設定如下配置:
log-bin=mysql-bin binlog_format=mixed server-id = 2 relay_log = /var/lib/mysql/mysql-relay-bin log_slave_updates = 1 read_only = 1
4.從庫啓動
mysql> change master to master_host='10.0.1.5', master_user='repl', master_password='Replica@123', master_log_file='mysql-bin.000001', master_log_pos=0;
5.從庫開啓同步
mysql> start slave;
6.從庫查看狀態
mysql> show slave status\G
執行結果:
7.驗證執行結果
下圖左側是主服務器,右側是從服務器
8.查看工作進程
主庫上查看進程:
show processlist\G
執行結果:
可以看出主庫已經發送完所有的binlog
從庫上查看進程:
排錯:
說明:
Slave_IO_Running:連接到主庫,並讀取主庫的日誌到本地,生成本地日誌文件
Slave_SQL_Running:讀取本地日誌文件,並執行日誌裏的SQL命令。
解決辦法,在從庫上執行
mysql> slave stop; mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; mysql> slave start;