Docker 实践经验(四)docker 上部署 mysql8 主从复制_看,未来的博客 - CSDN 博客_docker mysql8 开启远程连接
本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net
文章目录
环境准备
需要一个 MySQL8 版本的 MySQL,因为我个人没有用过 mysql5,不知道二者是否会有一些特性上的偏差。
默认你与我的环境是一样的。
简易版本安装
先仅仅安装一个 MySQL,一上来就主从的话很多细节都会杂糅在一起。
1 | docker run -d -p 3306:3306 --privileged=true -v /mysql/log:/var/log/mysql -v /mysql/data:/var/lib/mysql -v /mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql |
这里的参数介绍一下:
1 | -p:指定内外端口映射,虚拟机为外,docker 容器为内,写在前面的为外部端口,写在后面的为内部端口。因为 MySQL 本身端口为 3306,为了不使你们混淆,我外部端口不设置为 3306。 |
这样一个简易的 MySQL 就能动了。
设置密码
没有设置密码的话,不确定第二次要登录的时候是否还能进得去了。
不确定的意思就是可能进得去,可能进不去。
所以我们自行设置一个密码比较保险。
1 | mysql> use mysql |
不用注释吧。
现在这个 MySQL 能动了吧,可以考虑删掉了,咱开始做主从复制。
如果想留着用的:
修改 my.cnf,通过数据卷同步给 MySQL:
1 | cd /mysql/conf |
重启 MySQL:
1 | docker restart mysql |
配置 MySQL 主从复制
创建 bridge 网络并指定 IP 区间
1 | docker network create --driver bridge mysql-master-slave |
mysql 连接数默认不够
1 | set global max_connections=500; |
创建数据和配置存放目录
1 | # 创建主库数据存放目录 |
准备配置文件
主数据库
1 | [mysqld] |
从数据库
1 | [mysqld] |
启动数据库
启动主数据库
如果上面完全按照我的步骤来,这里的命令也不用改参数。
1 | docker run -d -p 3316:3306 --name mysql_master --restart=always --network mysql-master-slave -v /home/docker/mysql/master/data:/var/lib/mysql -v /home/docker/mysql/master/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 mysql |
启动从数据库
1 | docker run -d -p 3326:3306 --name mysql_slave1 --restart=always --network mysql-master-slave -v /home/docker/mysql/slave1/data:/var/lib/mysql -v /home/docker/mysql/slave1/conf/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 mysql |
远程访问配置(主从)
1 | # 在容器 mysql_master 中开启一个交互模式的终端 |
主库创建复制用户
1 | CREATE USER 'woniu'@'%' IDENTIFIED WITH mysql_native_password BY 'woniu123456'; |
查看 master 机器的状态
1 | SHOW MASTER STATUS; |
从库设置 master 的信息
如果前面完全按我的步骤来,这里需要填写你们自己宿主机上的 ip、还有上图中显示的那两个数据。
1 | change master to master_host='192.168.190.133', master_user='woniu', master_password='woniu123456', master_port=3316, master_log_file='mysql-bin.000003', master_log_pos=2838, master_connect_retry=30; |
参数释义:
1 | master_host:主数据库的IP地址; |
开启主从复制
1 | # 开始同步 |
如果成功,圈出来的地方要都是 yes、
如果失败,会显示日志:
可自行百度,不过百度出来的不一定就适用于咱,毕竟咱是在 docker 上部署的,现有资料较少。
要靠经验。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Real的博客!
评论
TwikooWaline