docker mysql主从 跨公网IP

一、主库安装
  1. 参照dockerhub描述创建一个mysql基础容器

方法一:

可以创建一个最简单myql容器,然后再修改配置

docker run --name fanrui_mysql_master -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 在这里插入图片描述

方法二:

创建一个带映射配置文件的容器(请注意下面在一行执行)

docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

在这里插入图片描述

  • **注: 之所以介绍两种方式是因为第一种方法需要进入容器内编辑配置文件,从而导致not foud vim

解决方法:1 apt-get update 2 apt-get install vim

这两个步骤都有可能会失败,而且特别慢,只能耐心等待,或者去喝杯咖啡了,

失败的话,重新执行一次或几次还是可以成功的(我暂时没有加速的办法)**

  • **注:第二种方法需要重点注意映射的的宿主机路径与容器路径的关系,可能导致映射失败

解决方法:1 映射前宿主机chmod 777 宿主机目录

2 目录一定要映射到足够深的目录**

  • **注:下图1是我按照dockehub上的介绍,映射到1的位置,编辑mysql配置文件mysql.cnf不生效

下图2是我按照dockehub上的介绍,映射到2的位置,编辑mysql配置文件mysqld.cnf可生效**

在这里插入图片描述

  1. 编辑mysqld.cnf

在[mysqld]下添加

# 这里的 server-id 相对于从库唯一即可

server-id = 1

log-bin = mysql-bin

  1. 重启mysql服务,停止容器,再重启动容器即可

docker stop mysql容器

docker start mysql容器

  1. 进入主mysql,查看master信息

在这里插入图片描述

二、从库安装

1.从库容器创建:参照主库容器

2. 修改配置文件

路径:/etc/mysql/mysql.cnf.d/mysql.cnf

在[mysqld]下添加

# 这里的 server-id 相对于主库唯一即可

server-id = 13

log-bin = mysql-slave-bin

relay-log =edu-mysql-replay-bin

在这里插入图片描述

3. 重启mysql服务,停止容器,再重启动容器即可

docker stop mysql容器

docker start mysql容器

4. 进入mysql从库,执行下面语句

该语句功能为给从库指定同步目标

change master to master_host=‘公网IP’, master_user=‘root’, master_password=‘123456’, master_port=3306, master_log_file=‘mysql-bin.000003主库刚才查到的’, master_log_pos= 2830同步位置, master_connect_retry=30;

  • 注:正常情况不应该用root去同步,为了试验方便就暂时用root吧

5.检查配置状态

执行:show slave status \G;

在没有执行start slave的时候,两个yes,应该是两个No,不过没有问题,不是错误

执行:start slave,再执行 show slave status \G;

如果一个yes,一个一直是connectioning,那么恭喜你,只差最后一步了!

在这里插入图片描述

三、公网配置
  1. 关闭主从库容器,并打包成新的镜像

镜像打包请参照:镜像打包

  1. 创建新的主从容器,并分别将2375端口映射到3306

docker run -d --name new_main -p 2375:3306 新主库镜像:tag

docker run -d --name new_slave -p 2375:3306 新从库镜像:tag

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 25
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值