cant connect local mysql to_docker实现Mysql主从同步

ed512787e51e17b19d447eb6fb794aaa.png

docker pull mysql:5.7

也可以拉取最新的mysql镜像

e9991075e036a925168daa56171554b0.png

mkdir -p /usr/mysql/master

mkdir -p /usr/mysql/slave

mkdir -p /usr/mysql/slave2

1bd15ed856c174b9130a126bc3011199.png

FROM mysql
COPY my.cnf /etc/mysql/  
EXPOSE 3306

CMD ["mysqld"]

fd58c95a94f4cf935dfb05db52290b04.png

[mysqld]

log-bin=mysql-bin

server-id=1     //server-id必须三个文件都不同,唯一

168f0407c68450ae74206ce847c04da9.png

docker build -t master/mysql .

docker build -t master/slave .

docker build -t master/slave2 .

后面的点不要忘记

8415961323f11cc78b598a304589c811.png

docker run -p 3306:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=root -d master/mysql

docker run -p 3307:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=root -d slave/mysql

docker run -p 3308:3306 --name mysql-slave2 -e MYSQL_ROOT_PASSWORD=root -d slave2/mysql

dedabb3d7ed49197c16783af4c3fb630.png

mysql>GRANT REPLICATION SLAVE ON *.* TO 'user'@'192.168.99.100' IDENTIFIED BY 'mysql';(指定ip)
或者
mysql>GRANT REPLICATION SLAVE ON *.* to 'user'@'%' identified by 'mysql';(所有ip)

然后查看服务器状态show master status;

0af767375542e467a0aaf45e03603c01.png

这时,不要在对对主节点进行任何数据操作

de45113d5e95a626955a89093fda4cfb.png

查询主服务ip

docker inspect --format='{{.NetworkSettings.IPAddress}}'

在从服务器分别执行

change master to 

master_host='172.17.0.2', 

master_user='root', 

master_password='root', 

master_port=3306, 

master_log_file='mysql-bin.000004', master_log_pos=154 

master_connect_retry=30;

aafb5a84226b782f388d2cc2f4022fcf.png

MASTER_HOST,MASTER_USER,MASTER_PASSWORD,MASTER_PORT四个选项提供了slave从机连接到master主机的信息。

MASTER_HOST 与 MASTER_PORT:

    分别代表master主机名(或IP地址)及mysql实例端口号。

MASTER_USER 与 MASTER_PASSWORD:

    连接到master主机复制账户所对应的用户名及密码。

MASTER_LOG_FILE 与 MASTER_LOG_POS:

    这两项确定slave的io线程下次开始执行时从master开始读取的位置坐标。

MASTER_CONNECT_RETRY:

    重连到master时的超时等待时间,默认为60秒。

d46e01de722a0a002076077ff2115214.png

start slave;

show slave status\G

69c365a157053d3291245a6190abe505.png

这两个必须是 Yes 为 No 或者 connect 说明没有连接上

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

cb01b6e3643757f2b5bd7514ce61c857.png

到这里已经搭建完毕,接下去就是测试了。在主节点创建一张表,会在从节点看见新增一张表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值