1、测试环境(开启防火墙)
Master:CentOS 7
192.168.13.129
Mysql 5.7.23
Slave:CentOS 7
192.168.13.130
Mysql 5.7.23
#防火墙Master开启即可
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
2、Master配置
#新建复制用户(注意权限问题)
CREATE USER 'repl'@'192.168.13.%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.13.%';
编辑my.cnf文件
[mysqld]
log-bin=mysql-bin
server-id=1
binlog-do-db=Demo #要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
binlog-ignore-db=mysql #要忽略的数据库
重启mysql服务并查看Master状态信息
service mysqld restart #重启服务
show master status\G #进入mysql查看Master状态信息
3、Slave配置
编辑my.cnf文件
[mysqld]
server-id=2
replicate-do-db=Demo
replicate-ignore-db = mysql #忽略的库
编辑连接信息(登录到Mysql)
stop slave;
CHANGE MASTER TO
-> MASTER_HOST='192.168.13.129',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='repl123',
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=154;
start slave;
show slave status\G /*查看slave状态,成功即可测试/
4、容易出现的错误
报错;Got fatal error 1236 from master when reading data from binary log
解决方法:(登录到Mysql)
Slave: stop slave;
Master: flush logs
Master: show master status;
Slave: CHANGE MASTER TO MASTER_LOG_FILE=’log-bin.00000X’, MASTER_LOG_POS=154;
Slave: start slave;