docker搭建mysql主从配置

1.拉取mysql,这里使用5.7

docker pull mysql:5.7

2、在本地主机新建两个配置文件:my-master.cnf、my-slave.cnf

my-master.cnf:

[mysqld]
log-bin = mysql-bin
server-id = 1

my-slave.cnf:

[mysqld]
server-id = 2

注意:自己创建文件所在的路径。后面会用到。

3.创建my-master容器,使用本地主机的3307端口映射容器3306,使用my-master.cnf文件。指定mysql的root用户的密码为:123456。

docker run -d -e MYSQL_ROOT_PASSWORD=123456 \
--name mysql-master \
-v /mydata/mysql/my-master.cnf:/etc/mysql/my.cnf \
-p 3307:3306 mysql:5.7

4、连接my-master。

mysql -h127.0.0.1 -P3307 -uroot -p123456

6、创建用户backup,密码:123456(ps:自己随意)并授权,供从主机使用。

创建用户:

CREATE USER 'backup'@'%' IDENTIFIED BY '123456';

授权: 

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'backup'@'%';

7、创建my-slave容器,使用本地主机的3308端口映射容器3306,使用my-slave.cnf文件。指定mysql的root用户的密码为:123456。


docker run -d -e MYSQL_ROOT_PASSWORD=123456 \
--name mysql-slave \
-v /mydata/mysql/my-slave.cnf:/etc/mysql/my.cnf \
--link mysql-master \
-p 3308:3306 mysql:5.7

 8、查看my-master的binlog信息。需要注意File:mysql-bin.000004,Position:154。

show master status\G;

9、使用docker ps,查看docker正在运行的容器列表,获得my-master的container id: 1deed37027b8 (ps:看你自己的值是什么)

10、获得 my-master对应的ip地址,说明1deed37027b8 是上一步获得的值。

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

11、 连接my-slave。

mysql -h127.0.0.1 -P3308 -uroot -p123456

12、为my-slave配置my-master。

change master to master_host='172.17.0.2', 
master_user='backup', 
master_password='123456',
master_port=3306, 
master_log_file='mysql-bin.000004', 
master_log_pos=154, master_connect_retry=30;

注意:1、master_host是my-master的ip;2、master_log_file='mysql-bin.000004'和master_log_pos=154,来源与第8步骤的值。

13、my-slave开启slave。

start slave;

14.查看slave状态消息;框住两个都是Yes证明配置成功啦。

show slave status\G;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值