《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;