Docker环境MySQL主从部署

1、环境准备

拉取mysql镜像

docker pull mysql

准备两个mysql配置文件

# 主库配置文件my-master.cnf
[mysqld]
log-bin = mysql-bin
server-id = 1

# 从库配置文件my-slave.cnf
[mysqld]
server-id = 2

启动两个容器,端口配置
Host:3307,数据库master:3306
Host:3308,数据库slave:3306

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

docker run -d -e MYSQL_ROOT_PASSWORD=root \
 --name mysql-slave \
  -v /root/mysql/my-slave.cnf:/etc/mysql/my.cnf \
  -p 3308:3306 mysql

环境已准备好。

具体参数如下:

ip

本机Host:172.18.134.10

master容器:172.17.0.2

slave容器:172.17.0.3

登录数据库命令

# 本机 -> master
mysql -h172.18.134.10 -P3307 -uroot -proot

# 本机 -> slave
mysql -h172.18.134.10 -P3308 -uroot -proot

2、主库配置

新建一个用户专门用来同步master,

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

给backup用户分配备份的权限

GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';

主库配置完成。

查看主库状态:

show master status;

记住查询结果,后面会用。

File: mysql-bin.000003

Position: 688

3、从库配置

从库通过IO线程连接master,所以需要指定master的信息,包括host, port, user, password

change master to master_host='172.17.0.2', 
    master_port=3306, 
    master_user='backup', 
    master_password='123456', 
    master_log_file='mysql-bin.000003', 
    master_log_pos=688;
start slave;

查看从库状态,

show slave status\G

如果输出,

               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.17.0.2
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 688
               Relay_Log_File: 6b0f3668aa62-relay-bin.000002
                Relay_Log_Pos: 913
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

则说明连接成功。

4、测试

在master上操作,更改都会显示在slave上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值