Docker部署MySQL 8.0主从(Master-Slave)

docker安装mysql主从,docker版本:18.09.2;mysql版本8.0.15.

首先准备环境:Docker已安装mysql镜像(docker pull mysql:8.0.15)

 

1.在linux上创建my.cnf和data目录

创建mysql-master配置文件 

mkdir /setup/docker/mysql/mysql-master/conf
vim /setup/docker/mysql/mysql-master/conf/my.cnf

mkdir /setup/docker/mysql/mysql-master/data

master的my.cnf内容为:

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

创建mysql-slave配置文件 

mkdir /setup/docker/mysql/mysql-slave-01/conf
vim /setup/docker/mysql/mysql-slave-01/conf/my.cnf

mkdir /setup/docker/mysql/mysql-slave-01/data

 slave的my.cnf内容为(注意:id不能重复):

[mysqld]
server-id=2

 

2.创建镜像实例

docker run -p 3306:3306 --name mysql-master -v /setup/docker/mysql/mysql-master/conf:/etc/mysql/conf.d -v /setup/docker/mysql/mysql-master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=kang -d mysql:8.0.15

docker run -p 3307:3306 --name mysql-slave-01 -v /setup/docker/mysql/mysql-slave-01/conf:/etc/mysql/conf.d -v /setup/docker/mysql/mysql-slave-01/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=kang mysql:8.0.15

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 其中两个目录挂载分别为:

①/etc/mysql/conf.d为mysql8.0.15的默认配置文件目录,所以将自定义配置文件目录挂载到docker容器的此目录;

②/var/lib/mysql为mysql8.0.15的默认数据存放目录,所以将data目录挂载到此目录。

查看镜像实例是否启动成功:

docker ps -a

 

 

3.登录mysql

① 首先进入docker容器命令行:docker exec -it mysql-master /bin/bash

② 登录mysql:mysql -u root -p

 

4.配置master

进入mysql命令操作:

① 创建主从复制用户并授权(注意:授权ip应该为docker容器的ip,授权后测试在从库所在docker容器中能否登陆成功)

create user 'replication'@'172.17.0.1' identified with mysql_native_password by 'kang';

GRANT REPLICATION SLAVE ON *.* TO 'replication'@'172.17.0.1';

flush privileges;

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

② 查看主机日志状态

show master status\G;

 

注意:如果日志不是初始状态可能主从同步会不成功,可以使用flush logs刷新日志状态,刷新之后重新生成日志文件) 

 

 5.配置slave

进入mysql命令操作:

① 设置登录主节点参数

CHANGE MASTER TO
MASTER_HOST='192.168.119.137',
MASTER_USER='replication',
MASTER_PASSWORD='kang',
MASTER_LOG_FILE='mysql-bin.000009',
MASTER_LOG_POS=155;

② 查看从机状态:

show slave status\G;

③ 开启主从同步(注意:关闭是stop slave,如果改变同步参数需先关闭)

start slave;

④ 再查看主从同步状态

show slave status\G;

 

成功! 可以测试一下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值