当前位置:网站首页>Docker中实现MySQL主从复制
Docker中实现MySQL主从复制
2022-06-26 10:00:00 【杰肥啊】
前言
我们知道,使用Docker可以很方便的进行MySQL的拉取,启动。相对于传统的安装方式,在Docker中使用MySQL简直是太方便了,本篇内容要学习的是如何在Docker中进行MySQL的主从复制,因为在真实的生产环境中,还是最起码得需要一主一从的模式。如果小伙伴们有空余时间,还是可以按照步骤,进行操作试一试。如果还没有试过Docker中安装MySQL的小伙伴们可以快速跟着以下文章内容进行前步骤安装。
安装
使用镜像
这里使用的是MySQL:5.7的镜像版本
准备容器
首先我们得先思考一下准备几个容器。这里我们为了方便,就一主一从,待会要创建的MySQl容器名字就叫做 mysql_master和mysql_slave,端口规定为3306和 3307,规定挂载目录都放在/mydata/mysql底下。
新建主服务器
docker run -d -p 3306:3306 --name mysql_master -e MYSQL_ROOT_PASSWORD=123456 -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /mydata/mysql-master/conf:/etc/mysql mysql:5.7


修改my.cnf
在/mydata/mysql-master/conf 文件夹下新建一个my.cnf文件,然后下面的内容粘贴进去。
[mysqld]
## 设置serverid,同一个局域网内要唯一
server_id=101
##指定不需要同步的数据库名称
binlog-ignore-db=mysql
##开启二进制日志功能
log-bin=mall-mysql-bin
##设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
##设置使用的二进制日志格式
binlog_format=mixed
##二进制日志过期清理时间
expire_logs_days=7
##跳过主从复制中所有错误或指定类型的错误,避免slave端复制中断
###1062主键重复,1032主重数据不一致
slave_skip_errors=1062
重启主服务器
docker restart mysql_master
进入主服务器
进入容器内
docker exec -it mysql_master /bin/bash登录到mysql
mysql -uroot -p123456master容器实例内创建数据同步用户
CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
在主数据库查看主从同步状态
show master status \G;

这里的参数很关键,等会在从数据库最后配置的时候需要从这里获取对应的值
新建从服务器
docker run -d -p 3307:3306 --name mysql_slave -e MYSQL_ROOT_PASSWORD=123456 -v /mydata/mysql-slave/log:/var/log/mysql -v /mydata/mysql-slave/data:/var/lib/mysql -v /mydata/mysql-slave/conf:/etc/mysql mysql:5.7
修改my.cnf
[mysqld]
## 设置serverid,同一个局域网内要唯一
server_id=102
##指定不需要同步的数据库名称
binlog-ignore-db=mysql
##开启二进制日志功能
log-bin=mall-mysql-slave1-bin
##设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
##设置使用的二进制日志格式
binlog_format=mixed
##二进制日志过期清理时间
expire_logs_days=7
##跳过主从复制中所有错误或指定类型的错误,避免slave端复制中断
###1062主键重复,1032主重数据不一致
slave_skip_errors=1062
##配置中继日志
relay_log=mall-mysql-relay-bin
##表示slave将复制事件写进自己的二进制日志
log_slave_updates=1
##slave设置为只读
read_only=1
重启从服务器
docker restart mysql_slave
进入从服务器
进入容器内
docker exec -it mysql_slave /bin/bash登录MySQL
mysql -uroot -p123456在从数据库中配置主从配置
change master to master_host='192.168.40.128', master_user='slave', master_password='123456', master_port=3306, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;master_host:主数据库的IP地址;master_port:主数据库的运行端口;master_user:在主数据库创建的用于同步数据的用户账号;master_password:在主数据库创建的用于同步数据的用户密码;master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取Position参数;master_connect_retry:连接失败重试的时间间隔,单位为秒。这里的参数由上面 show master status; 得到
在从数据库查看主从同步状态
show slave status \G;
开启主从同步
start slave;

测试
用Navicat Premium 连接工具分别连上主数据库和从数据库。

然后在主数据库中新建一个数据库叫做mydata

这时候发现从数据库也同步成功。

边栏推荐
猜你喜欢

栖霞市住建局和消防救援大队开展消防安全培训
![[echart] i. how to learn echart and its characteristic document reading notes](/img/21/5405ae302df77d2ba07d9f5e5537f3.jpg)
[echart] i. how to learn echart and its characteristic document reading notes

JS take the date of the previous month 【 pit filling 】

SSH, SCP command appears permission denied, please try again solution

Express (I) - easy to get started

Basic MySQL

Based on Zeng Shen's explanation, the line segment tree is studied again one

MySQL第十三次作业-事务管理

MySQL 13th job - transaction management

MySQL 10th job - View
随机推荐
Huawei secoclient reports an error "accept return code timeout" [svn adapter v1.0 exclamation point]
MySQL 13th job - transaction management
ceph运维常用指令
工程数学概率论统计简明教程第二版复习大纲
Installer MySQL sous Linux [détails]
SQL Server 基础介绍整理
Global and Chinese markets in hair conditioner 2022-2028: Research Report on technology, participants, trends, market size and share
Linux下安装Mysql【详细】
AIX basic operation record
一键部署ceph脚本
MySQL第八次作业
Pytest configuration file
Postman入门教程
Servlet learning notes II
Global and Chinese markets of children's electronic thermometers 2022-2028: Research Report on technology, participants, trends, market size and share
Global and Chinese market of cryogenic bulk tanks 2022-2028: Research Report on technology, participants, trends, market size and share
Win10 start FTP service and set login authentication
Global and Chinese market of contemporary lampshade 2022-2028: Research Report on technology, participants, trends, market size and share
Quantitative investment learning - Introduction to classic books
MySQL Chapter 4 Summary