当前位置:网站首页>使用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,说明主从复制已经搭建完成。
尝试向主节点的表中添加记录,会自动复制到从节点上。
边栏推荐
猜你喜欢
随机推荐
工作两年成跳槽高峰期,程序员会在一家公司待多久?
rancher集成ldap,实现统一账号登录
C语言实验十三 指针(三)
[Arduino] Reborn Arduino Monk (2)----Arduino Language
ROS2自学笔记:机器视觉基础
05-分布式计算框架
IPv4编址;A类、B类、C类、D类、E类IP地址(IP地址;网络地址和主机地址;子网掩码;网关;广播地址;)
Guys, I don't understand a bit: why the documentation of oracle-cdc writes that the connector can be done exactly-o
LVS负载均衡群集及部署LVS-NAT实验
Pro_07丨波动率因子3.0与斜率因子
什么样的存储服务,才能成为企业数字化创新“加速器”?
【leetcode热题Hot100】——任务调度器
任意版本JLink驱动官方下载指引
uniapp中动态修改导航栏标题
JVM internal structure and various modules operation mechanism
金仓数据库 Pro*C 迁移指南(3. KingbaseES Pr*oc 对 Oracle Pro*c 的兼容)
Nacos入门学习
Get the first/last day of the current week, month, quarter in MySQL
MySQL-Explain详解
els 结束判断









