本文主要介绍了Docker上部署mysql8主从复制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
环境准备
需要一个 MySQL8 版本的 MySQL,因为我个人没有用过 mysql5,不知道二者是否会有一些特性上的偏差。
默认你与我的环境是一样的。
简易版本安装
先仅仅安装一个 MySQL,一上来就主从的话很多细节都会杂糅在一起。
这里的参数介绍一下:
-p:指定内外端口映射,虚拟机为外,docker 容器为内,写在前面的为外部端口,写在后面的为内部端口。因为 MySQL 本身端口为 3306,为了不使你们混淆,我外部端口不设置为 3306。
-v:指定内外存储卷映射,Docker 实践经验(三)讲的就是这个。
-e:往容器内部传参,最后会由 MySQL 来接收。关于这个 -e 其实我也还没研究它的一个走势。
这样一个简易的 MySQL 就能动了。
设置密码
没有设置密码的话,不确定第二次要登录的时候是否还能进得去了。
不确定的意思就是可能进得去,可能进不去。
所以我们自行设置一个密码比较保险。
不用注释吧。
现在这个 MySQL 能动了吧,可以考虑删掉了,咱开始做主从复制。
如果想留着用的:
修改 my.cnf,通过数据卷同步给MySQL:
重启MySQL:
配置 MySQL 主从复制
创建 bridge 网络并指定 IP 区间
mysql连接数默认不够
创建数据和配置存放目录
准备配置文件
主数据库
从数据库
启动数据库
启动主数据库
如果上面完全按照我的步骤来,这里的命令也不用改参数。
启动从数据库
远程访问配置(主从)
主库创建复制用户
查看 master 机器的状态
从库设置 master 的信息
如果前面完全按我的步骤来,这里需要填写你们自己宿主机上的 ip、还有上图中显示的那两个数据。
参数释义:
- master_host:主数据库的IP地址;
- master_port:主数据库的运行端口;
- master_user:在主数据库创建的用于同步数据的用户账号;
- master_password:在主数据库创建的用于同步数据的用户密码;
- master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;
- master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取Position参数;
- master_connect_retry:连接失败重试的时间间隔,单位为秒。
开启主从复制
如果成功,圈出来的地方要都是 yes、
如果失败,会显示日志:
可自行百度,不过百度出来的不一定就适用于咱,毕竟咱是在 docker 上部署的,现有资料较少。
要靠经验。
到此这篇关于Docker上部署mysql8主从复制的实现的文章就介绍到这了,更多相关Docker部署mysql8主从复制内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!