【Docker、Mysql】Docker搭建Mysql主从复制(一主一从)

一、主数据库搭建

1、使用Docker Hub搜索Mysql版本,使用mysql:5.7

docker pull mysql:5.7

2、docker run 运行镜像

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

在这里插入图片描述

3、进入容器内部,修改my.cnf文件

进入容器

docker exec -it ed39828ef047 /bin/sh

在这里插入图片描述
进入目录/etc/mysql

cd /etc/mysql

在这里插入图片描述
使用vi/vim命令前需要先执行以下命令安装

apt-get update
apt-get install vim

修改my.cnf文件

vim my.cnf

修改的内容为

[mysqld]
#修改配置文件:vim /etc/my.cnf
#主服务器唯一ID
server-id=1
#启用二进制日志(必要配置)
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库 需要复制的主数据库名字
binlog-do-db=testdb
#设置logbin格式
binlog_format=STATEMENT

重启mysql服务使配置生效,重启mysql服务时会使得docker容器停止

service mysql restart

在这里插入图片描述

重启容器并重新进入容器内部

docker start ed39828ef047
docker exec -it ed39828ef047 /bin/sh

在容器内部连接mysql

mysql -uroot -proot

在这里插入图片描述

主机上建立帐户并授权 slave

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'root';

查询master状态,如果my.cnf文件配置失败,是不会出现该表格的。

show master status;

正确截图:
在这里插入图片描述
未生效截图:
在这里插入图片描述
把这里的File和Position记下来,等下在从机上需要使用

File: mysql-bin.000001
Position: 438

二、从数据库搭建

1、docker run 运行镜像

docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=root -d -p 8881:3306 mysql:5.7

在这里插入图片描述

2、进入容器内部,修改my.cnf文件

进入容器

docker exec -it 36610e42c1cc /bin/sh

在这里插入图片描述

进入目录/etc/mysql

cd /etc/mysql

在这里插入图片描述
使用vi/vim命令前需要先执行以下命令安装

apt-get update
apt-get install vim

修改my.cnf文件

vim my.cnf

修改的内容为

[mysqld]
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay

重启mysql服务使配置生效,重启mysql服务时会使得docker容器停止

service mysql restart

在这里插入图片描述

重启容器并重新进入容器内部

docker start 36610e42c1cc
docker exec -it 36610e42c1cc /bin/sh

在容器内部连接mysql

mysql -uroot -proot

配置主机信息

CHANGE MASTER TO MASTER_HOST='10.101.101.111',
MASTER_USER='slave',
MASTER_PASSWORD='root',
MASTER_PORT=8880, 
MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=438;

解释:

MASTER_HOST=主机的ip地址
MASTER_USER=授权账户
MASTER_PASSWORD=密码
MASTER_PORT=映射端口
MASTER_LOG_FILE=之前的File
MASTER_LOG_POS=之前的Position

在这里插入图片描述

注:如果在这里出现错误,先重置。执行完下面两条命令。

stop slave;
reset master;

启动从机

start slave;

查看服务器状态

show slave status\G

在这里插入图片描述
下面两个参数都是Yes,则说明主从配置成功

Slave_IO_Running: Yes 
Slave_SQL_Running: Yes

注意:本文配置的主从复制数据库为“testdb”,其他的不会同步,需要重新配置。

推荐文章:
史上最详细Docker部署Mysql主从复制,带每一步骤图!!!
windows环境下docker搭建mysql的主从复制

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值