几行命令,搭建基于Docker的Mysql主从复制


  首先,当然是需要有现成的docker环境,如果还没有docker环境,请参考上篇文章,搭建docker环境。 centos7安装docker,教你配置阿里云镜像加速器~

1.拉取镜像

我们使用的mysql版本为5.7.29

docker pull mysql:5.7.29

通过命令查询镜像是否拉取成功

docker images

查询结果如图,即为拉取镜像成功
镜像查询结果

2.创建mysql主从库对应的配置文件

mkdir /usr/local/mysql/master
mkdir /usr/local/mysql/slave

2.1 主库配置文件

vim /usr/local/mysql/master/my.cnf

配置文件中添加以下内容

[mysqld]

log-bin=mysql-bin

server-id=1     #注意这个id>0且要唯一

按下esc,输入:wq保存退出my.cnf配置文件内容

2.2 从库配置文件

vim /usr/local/mysql/slave/my.cnf

配置文件中添加以下内容

[mysqld]

log-bin=mysql-bin

server-id=2     #注意这个id>0且要唯一

按下esc,输入:wq保存退出

3. 启动mysql主从库

3.1启动主库

命令有点长,复制执行即可。该行命令中配置主库的端口号为3306,root用户密码为123456,如果有需要可以自行修改。

docker run --restart=always --privileged=true -d -v \
/usr/local/mysql/master/data:/var/lib/mysql -v \
/usr/local/mysql/master/conf.d:/etc/mysql/conf.d \
-v /usr/local/mysql/master/my.cnf:/etc/mysql/my.cnf \
-p 3306:3306 --name master -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.29

3.2 启动从库

命令有点长,复制执行即可。该行命令中配置从库的端口号为3316,root用户密码为123456,如果有需要可以自行修改。

docker run --restart=always --privileged=true -d -v \
/usr/local/mysql/slave/data:/var/lib/mysql -v \
/usr/local/mysql/slave/conf.d:/etc/mysql/conf.d \
-v /usr/local/mysql/slave/my.cnf:/etc/mysql/my.cnf \
-p 3316:3306 --name slave -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.29

4.配置主从复制

打开我们数据库连接用的可视化工具~(ps:不喜欢用命令行)
分别连接我们搭好的主库和从库

4.1主库下执行如下sql

创建slave用户,以便于从库使用该用户连接到主库同步数据

grant all privileges on *.* to 'slave'@'%' identified by 'slave' with grant option;
flush privileges;

来,检查一下用户是否创建成功,并查询一下主库状态

select user,host from mysql.user;
show master status

执行结果如图:
查询用户创建
主库状态

4.2 查询下主库在docker容器内的ip地址

执行该命令查询到主库在docker内的ip地址:

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

执行结果如图:
主库ip查询
记录一下该地址哦,等下用到

4.3 在从库下执行如下sql

将刚刚查询到的主库的docker容器内的ip地址替换到主库ip那里,master_log_file对应的值为主库状态查询时对应的File字段的值,
执行这些sql语句

stop slave
change master to master_host='主库ip', master_user='slave', master_password='slave', master_log_file='mysql-bin.000003';
start slave

4.4 查询从库状态

show slave status

如果是这样就说明我们主从复制搭建成功了!
从库状态

5 测试

我们在主库下可以创建一个数据库test,然后去从库中查询,也能查询出对应的test库。也可以在主库创建表,添加数据等,然后再去从库查询,就发现从库也有一模一样的数据了。
这样我们的主从复制就搭建完成了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值