1. docker启动参数
# 实例A
docker run -d --restart=always --name=mysql1 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -v /root/mysql1/data:/var/lib/mysql -v /etc/localtime:/etc/localtime mysql:8.0.16 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --log-bin=mysql-bin --server_id=1 --auto_increment_increment=10 --auto_increment_offset=1 --binlog-do-db=test --gtid_mode=on --enforce_gtid_consistency=on
# 实例B
docker run -d --restart=always --name=mysql2 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root -v /root/mysql2/data:/var/lib/mysql -v /etc/localtime:/etc/localtime mysql:8.0.16 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --log-bin=mysql-bin --server_id=2 --auto_increment_increment=10 --auto_increment_offset=2 --binlog-do-db=test --gtid_mode=on --enforce_gtid_consistency=on
2. 登录mysql
docker exec -it mysql1 mysql -hlocalhost -uroot -proot
docker exec -it mysql2 mysql -hlocalhost -uroot -proot
3. 创建同步用户
只需要在先做为主的机器上配置同步用户就可以了, mysql 8.0 需要指定密码插件 mysql_native_password
CREATE USER slave@'%'IDENTIFIED WITH 'mysql_native_password' BY 'slave123456';
grant replication slave on *.* to slave@'%';
flush privileges;
4. 互配主从
change master to master_host='192.168.163.128',master_user='slave',master_password='slave123456',master_port=3307, MASTER_AUTO_POSITION=1;
change master to master_host='192.168.163.128',master_user='slave',master_password='slave123456',master_port=3308, MASTER_AUTO_POSITION=1;
# 查看状态
show master status;
stop slave;
reset slave;
start slave;
show slave status\G;
5. 测试数据同步
create database test;
use test;
create table a1 (id int,name varchar(12));
insert into a1 values (103,'张');
insert into a1 values (104,'wangya');
网友评论