美文网首页
docker mysql 双主 GTID

docker mysql 双主 GTID

作者: 王小杰at2019 | 来源:发表于2019-06-24 14:19 被阅读0次

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');
 

相关文章

网友评论

      本文标题:docker mysql 双主 GTID

      本文链接:https://www.haomeiwen.com/subject/gxznqctx.html