docker 部署mysql8.0主从

先拉取镜像

docker pull mysql:8.0

创建mater 配置文件,用于运行时挂载

cd /home/usr/local/
mkdir mysql8-master
mkdir conf

运行容器

docker run -d --name mysql8-master -p 3306:3306 -v /home/usr/local/mysql8-master/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=root  mysql:8.0

进入容器mysql 容器

# 进入docker mysql 容器 
docker exec -it mysql8-master bin/bash

# 进入 mysql内部
 mysql -uroot -proot

#设置log
set session binlog_format=STATEMENT;

#重点 查看master 需要记录 File 和 Position 用于从库配置 我这里是File:mysql-bin.000003 #
#Position:157  

show master status;

 更新 root 用户的登录密码格式 用于连接Navicat  

ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;

启动slave 从库

docker run -d --name mysql8-slave  -p 3305:3306 -v /home/usr/local/mysql8-slave/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=root   mysql:8.0

进入容器 

# 进入docker mysql 容器 
docker exec -it mysql8-slave bin/bash

mysql -uroot -proot

执行 配置命令 

# 如果已经执行过的需要先执行一下两条命令
stop slave;
reset master;


#执行这条命令
CHANGE MASTER TO 
MASTER_HOST='*****', // 我的服务器地址就不放出来了,对号入座即可
MASTER_PORT=3306,
MASTER_USER='root',
MASTER_PASSWORD='root',
master_log_file='mysql-bin.000003',
master_log_pos=157,
master_connect_retry=60; 


CHANGE MASTER TO 
MASTER_HOST=master的ip地址,如果是服务器相同的话直接用服务器ip地址即可,
MASTER_PORT= master的端口,
MASTER_USER=mysql连接用户名,
MASTER_PASSWORD=mysql连接密码,
master_log_file= master上查看的File,
master_log_pos= master查看到的Position ,
master_connect_retry=60; 

#启动 slave 服务
start slave;

#查看是否启动成功
show slave status\G;

最后方便Navicat 验证 从库也要修改一下 root 密码的加密方式 

ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;

如果是用的服务器记得开放端口,虚拟机的话可能关闭防火墙即可。 主:3306 从:3305

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值