数据库 主从同步

1:开三台虚拟机,或者三个容器

docker run -itd --name mysql_m -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.35

docker run -itd --name mysql_s1 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.35

docker run -itd --name mysql_s2 -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.35

2:设置其中一台为主,其他两个为从

 docker cp 容器名称:/etc/mysql/conf.d/docker.cnf m.cnf
 三个复制过来,主mysql的上面加上
 设置server-id
 开启bin-log
 
 从机上只用加server-id
 三个的server-id应该不同


[mysqld]
skip-host-cache
skip-name-resolve
server-id=1
log-bin=master-bin


[mysqld]
skip-host-cache
skip-name-resolve
server-id=2

修改完成后将对应的文件放到对应的容器里面

3:对主进行设置

1:进入数据库,创建用户

create user 'rep'@'%' identified by '123456';

2:对新用户进行授权

 grant replication slave on *.* to 'rep'@'%';

3:刷新权限

flush privileges;

4:尝试新用户登录

mysql -urep -p123456

5: 查看日志号和位置号

 show master status;

4:对从进行设置

change master to
master_host="192.168.128.138",master_port=3307,
master_user="rep",
master_password="123456",
master_log_file="master-bin.000001",
master_log_pos=737;

strat slave;

5:验证

show slave status \G
如果底下两个全为
YES则有效

你可能感兴趣的:(数据库)