当前位置:网站首页>docker 搭建mysql 主从复制
docker 搭建mysql 主从复制
2022-08-04 21:33:00 【请你打开电视看看】
拉取镜像
docker pull mysql:5.7
创建主服务容器实例
使用容器卷运行实例
docker run -p 3307:3306 --name mysql-master \
-v /mydata/mysql-master/log:/var/log/mysql \
-v /mydata/mysql-master/data:/var/lib/mysql \
-v /mydata/mysql-master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
进入宿主机配置目录 创建my.cnf文件并添加配置
cd /mydata/mysql-master/conf
touch my.cnf
vim my.cnf
[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=101
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql
## 开启二进制日志功能
log-bin=mall-mysql-bin
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
重启master容器实例
docker restart mysql-master
进入容器 创建数据同步用户 授予权限
## 进入实例
docker exec -it mysql-master /bin/bash
## root账户进入 为数据同步创建用户 授予权限
mysql -uroot -proot
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
创建从服务容器实例
使用容器卷创建实例
docker run -p 3308:3306 --name mysql-slave \
-v /mydata/mysql-slave/log:/var/log/mysql \
-v /mydata/mysql-slave/data:/var/lib/mysql \
-v /mydata/mysql-slave/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
进入宿主机配置目录 创建my.cnf文件并添加配置
cd /mydata/mysql-slave/conf
touch my.cnf
vim my.cnf
[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=102
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql
## 开启二进制日志功能,以备Slave作为其它数据库实例的Master时使用
log-bin=mall-mysql-slave1-bin
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
## relay_log配置中继日志
relay_log=mall-mysql-relay-bin
## log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1
## slave设置为只读(具有super权限的用户除外)
read_only=1
重启slave容器实例
docker restart mysql-slave
进入容器 在数据库中配置主从复制
docker exec -it mysql-slave /bin/bash
mysql -uroot -proot
查看主数据库 master_log_file master_log_pos
change master to master_host='ip', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000004', master_log_pos=154, master_connect_retry=30;
master_port:主数据库的运行端口;
master_user:在主数据库创建的用于同步数据的用户账号;
master_password:在主数据库创建的用于同步数据的用户密码;
master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;
master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取Position参数;
master_connect_retry:连接失败重试的时间间隔,单位为秒。
在从服务中开启主从复制
start slave;
查看状态
show slave status \G;

边栏推荐
- PowerCLi 导入License到vCenter 7
- Exploration and Practice of Database Governance
- LayaBox---TypeScript---Problems encountered at first contact
- Altium Designer 19.1.18 - 画多边形铜皮挖空时,针对光标胡乱捕获的解决方法
- 数电快速入门(二)(复合逻辑运算和逻辑代数的基本定律的介绍)
- Develop your own text recognition application with Tesseract
- UDP communication
- LayaBox---TypeScript---structure
- [Linear Algebra 03] Elimination method display and 4 solutions of AX=b
- AXI interface application of Zynq Fpga image processing - the use of axi_lite interface
猜你喜欢

如何将二叉搜索树转化为一个有序的双向链表(原树上修改)

PowerCLi import license to vCenter 7

How to solve the problem that the alarm information cannot be transmitted after EasyGBS is connected to the latest version of Hikvision camera?

LayaBox---TypeScript---Problems encountered at first contact

ES6高级-async的用法

Develop your own text recognition application with Tesseract

LayaBox---TypeScript---首次接触遇到的问题

OD-Model【6】:YOLOv2

mdk5.14 cannot be burned

Altium Designer 19.1.18 - 保护锁定的对象
随机推荐
1319_STM32F103串口BootLoader移植
Chapter7 : Network-Driven Drug Discovery
visual studio 2015 warning MSB3246
JWT actively checks whether the Token has expired
【CC3200AI 实验教程 1】疯壳·AI语音人脸识别(会议记录仪/人脸打卡机)-开发环境搭建
MySQL查询为啥慢了?
[Linear Algebra 03] Elimination method display and 4 solutions of AX=b
PMP证书在哪些行业有用?
【Programming Ideas】
【PCBA方案设计】握力计方案
DSPE-PEG-Aldehyde,DSPE-PEG-CHO,磷脂-聚乙二醇-醛基一种疏水18碳磷脂
热力学相关的两个定律
国际项目管理师PMP证书,值得考嘛?
Webmine Webpage Mining Trojan Analysis and Disposal
【PCBA program design】Grip dynamometer program
命名路由、组件中name的作用
Win11如何设置软件快捷方式?
laravel whereDoesntHave
LayaBox---TypeScript---Problems encountered at first contact
Altium Designer 19.1.18 - 保护锁定的对象