Dict.CN 在线词典, 英语学习, 在线翻译 ------------- MyGitee 朱秋贵内科诊所 My腾云code

Docker搭建 MySQL 主从复制

#############################################################

##################### run mysql########################

############################################################

1-1、docker run

docker search mysql5.7;

docker run --name master -e MYSQL_ROOT_PASSWORD=123456 -p 13306:3306 -d 镜像ID;

docker run --name slave -e MYSQL_ROOT_PASSWORD=123456 -p 23306:3306 -d 镜像ID;

 

--name 容器命名
-e    MYSQL_ROOT_PASSWORD=123456 配置mysql的root用户的登陆密码
-p:端口映射,此处映射主机13306端口到容器master的3306端口
-d:成功启动容器后输出容器的完整ID

 

 

 

 

 

 

#############################################################

#####################master#################################

#############################################################

获取root权限,进入的CONTAINER name:master

docker exec -ti -u root master bash

2-1   ifconifg 172.17.0.2

2-2、修改/ect/my.cnf**********************
--my.cnf增加下面两行
server_id=100
log-bin=mysql-bin

重启容器:docker restart master

2-3、进入mysql命令**********************
mysql -u root 如下mysql命令
mysql->

2-4、//执行下面命令进行复制授权**********************
mysql-> CREATE USER 'slave'@'%' IDENTIFIED BY '12345678';
mysql-> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
2-5、//检查命令********************************************
mysql-> show master status;
如下:

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 617 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.01 sec)

 

 

 

 

 

 

 

 

#############################################################

#####################slave#################################

#############################################################
docker exec -ti -u root slave bash

3-1 ifconifg 172.17.0.3

3-2、修改/ect/my.cnf**********************
--my.cnf增加下面两行
server_id=101
log-bin=mysql-bin

重启容器:docker restart slave

3-3、重启容器进入容器再进入mysql命令**********************
mysql -u root 如下mysql命令
mysql->change master to master_host='172.17.0.2', master_user='slave', master_password='12345678',
master_port=3306, master_log_file='mysql-bin.000002', master_log_pos=617, master_connect_retry=30;

 

#master_host='172.17.0.2' 参考 2-1
#master_user='slave', master_password='12345678' 参考 2-4
#master_log_file='mysql-bin.000002', master_log_pos=617 参考 2-5

重启容器:docker restart slave

 

 

3-4、//查看主从同步状态
show slave status \G;


Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 表明配置成功


配置 master_log_file='mysql-bin.000002', master_log_pos=617,
两个参数要注意 和 show master status 输出的值保致

 

 

 

 

##############################################

参考:https://www.cnblogs.com/liuzhang/p/9299336.html

 

docker exec -ti -u root slave bash   加参数-u root  可以直接进入容器slave的以root用户登录

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-07-06 12:23  cn2023  阅读(212)  评论(0编辑  收藏  举报