所需环境:
两台安装了mysql的服务器(两台虚拟机),我这里用的是docker
1.给两个mysql分别都建一个数据库,命名为server_slave(命名看自己心情哦)
2.下面开始配置,一定要先配置主服务器的etc/my.cnf
#日志文件的名字,自己起的
log_bin=master-a-bin
#日志文件格式
binlog-format=ROW
#当前服务器主机id(唯一)
server-id=1
#需实现主从复制的数据库
bingo_do_db=server_slave
3.在主服务器里配置从服务器的授权,授权的目的是让从服务器发现主服务器
grant replication slave on *.* to 'root'@'172.17.0.3' identified by '123456';
IP为主服务器的IP地址
刷新权限flush PRIVILEGES;
4.配置从服务器的etc/my.cnf
#日志文件的名字,自己起的
log_bin=master-a-bin
#日志文件格式
binlog-format=ROW
#当前服务器主机id(唯一)
server-id=2
#双主互相备份(可以作为其他服务器的主服务器),现在不需要可以注释
log-slave-updates=true
5.主服务器重启mysql,查看状态
6.从服务器进行配置
change master to
master_host='172.17.0.3',
master_port=3306,
master_user='root',
master_password='123456',
master_log_file='master-a-bin.000001',
master_log_pos=120;
然后启动slave数据同步
show slave status\G;查看一下备份情况
如果出现一直是Connecting说明哪里有些问题了,需要调整。。
7.出现Connecting的情况常见的有两种:
(1)防火墙原因
(2)服务器没有开放3306端口
对主服务器进行配置
如果提示firewall:command not find就安装一下
8.从服务器进行测试
stop slave;
stop slave;
show slave status\G;
9.主从测试
测试成功,,主从复制配置完成。。。