当前位置:网站首页>使用docker容器搭建MySQL主从复制
使用docker容器搭建MySQL主从复制
2022-08-03 02:59:00 【woshihedayu】
1、拉取mysql镜像
docker pull mysql
2、创建主节点docker容器
docker run --name mysql-master -p 3306:3306 -v /root/docker/mysql/master:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql
创建从节点docker容器
docker run --name mysql-slave -p 3307:3306 -v /root/docker/mysql/slave:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql
这里通过挂载目录的方式使mysql的配置文件生效。然后,分别在两个节点导入数据库user_db。
3、在/root/docker/mysql/master下创建主节点的配置文件mysql.cnf
[mysqld]
log-bin=mysql-bin # 启用二进制日志
server-id=1 # 服务器唯一ID,可以任意设置,但必须唯一
binlog-ignore-db=mysql # 不要复制的数据库
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
binlog-do-db=user_db # 要复制的数据库名
注意,mysql的配置文件开头要加上[mysqld],我就是一开始没加这个东西导致配置怎么改都不生效,浪费了很多时间。这里设置了复制数据库user_db。重启容器,使配置生效。
4、在/root/docker/mysql/slave下创建从节点的配置文件mysql.cnf
[mysqld]
server-id=2
relay-log=mysql-relay
重启容器,使配置生效。
5、使用客户端连接主节点,执行如下命令
show master status
查看节点状态
在从节点执行如下命令
change master to
master_host='192.168.182.128',master_port=3306, master_user='root',master_password='123456',
master_log_file='mysql-bin.000003',master_log_pos=157;
实现复制。其中,master_log_file和master_log_pos分别对应上图中的File和Position。
6、在从节点执行
start slave
开启复制。执行
show slave status
查看复制状态,

出现两个Yes,说明主从复制已经搭建完成。
尝试向主节点的表中添加记录,会自动复制到从节点上。
边栏推荐
猜你喜欢
随机推荐
Spark SQL简介
QT之鼠标和键盘事件重写
Disable the token and update the token function without awareness
部门之间,互不信任正常吗?(你是否遇到过)
金仓数据库 Pro*C 迁移指南(3. KingbaseES Pr*oc 对 Oracle Pro*c 的兼容)
程序员写代码日常 | 每日趣闻
leetcode:163 缺失的区间
Task Scheduler 计划定时任务,修改时报错: One or more of the specified arguments are not valid
vsftp容器搭建+go开发web用户管理界面(更新于2022.02.23)
黑马程序员Servlet
谷粒商城一些疑问总结
Redshift贴logo的方法
leetcode:172. 阶乘后的零
sql问题,如何能做到先声明表的名称,例如product202201,表示2022年一月份的货物表,再在声明过的表中查找,下面的代码运行时有错误显示找不到表table_name,请问改如何进行修改
JWT入门学习
七夕??继续肝文章才是正道!!Auto.js 特殊定位控件方法
Postman如何做接口自动化测试?
PSSecurityException
zyMedia系列之播放视频
为什么要使用 playwright 做浏览器自动化测试?









