docker构建mysql以及多实例

docker创建mysql

这里如果是mac本的话,要特别注意在拉取镜像的时候需要如下操作

首先拉取mysql镜像

docker pull mysql/mysql-server:5.7.31

创建容器

docker run -p 3351:3306 --name myMysql-3351 -v /Users/xiaobo/DockerImage/mysql/3351/conf/my.cnf:/etc/my.cnf -v /Users/xiaobo/DockerImage/mysql/3351/logs/3351.log:/var/log/mysqld.log -v /Users/xiaobo/DockerImage/mysql/3351/data:/var/lib/data -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server:5.7.31

注意⚠️

  • -e MYSQL_ROOT_PASSWORD=123456 是设置密码
  • 如果是mac本是默认拉取镜像,或者创建容器的时候可以+--platform linux/x86_64
  • 如果docker启动不成功的话需要将挂载的my.cnf文件修改权限755chmod 755 my.cnf
  • image-20220524201402093

修改权限使得navicat可以登录

进入容器

docker exec -it 容器的名字 /bin/bash

输入以下命令

- use mysql
- update user set Host='%' where User='root'; 
- 最后 flush privileges; 

docker创建多实例

按照上面的步骤依次创建3351,3352,3353

相应的my.cnf内容如下图

image-20230420140017866

⚠️:上面所写的-p3351:3306实际上是宿主机对容器的映射

这里在做从库同步的时候,要使用容器的ip,命令如下

docker inspect myMysql-3351

image-20220412231125930

先查看主节点的状态

# 查看主节点状态
SHOW MASTER STATUS;
# 刷新日志
flush logs;
# 展示所有的主库binlog
show master logs;

image-20230420134552872

在从库同步的时候输入以下命令

# 首先要切换到从库下,然后执行上面的,SHOW MASTER STATUS;可看到如上图
CHANGE MASTER TO
       MASTER_HOST='172.17.0.3',
        MASTER_USER='root',
        MASTER_PASSWORD='123456',
    MASTER_PORT = 3306,
       MASTER_LOG_FILE='mysql-bin.000003',
        MASTER_LOG_POS=154;
START SLAVE;
show slave status;

上面命令执行好后会出现如下图,表示成功(这里并非绝对,对于多主多从的情况下还需要看偏移量)

image-20230420134848421

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只牛博

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值