当前位置:网站首页>Docker容器实现MySQL主从复制
Docker容器实现MySQL主从复制
2022-07-28 14:39:00 【不会调制解调的猫】
目录
进入/mydata/mysql-master/conf新建my.cnf
进入/mydata/mysql-slave/conf新建my.cnf
使用Docker安装MySQL5.7的详细文章:Linux中使用Docker安装MySQL5.7(CentOS7)_不会调制解调的猫的博客-CSDN博客
新建主服务器容器实例3307
这里就算没有拉取mysql5.7的镜像也可以直接运行,若发现没有镜像则会直接自动拉取。
这里的-v如果不懂,也可以查看之前的容器数据卷详解:Docker容器数据卷_不会调制解调的猫的博客-CSDN博客
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
ps查看一下,确认它起来了
docker ps
进入/mydata/mysql-master/conf新建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内部,是需要重启的
docker restart mysql-master 
再ps查看一下,要确认它已经up起来了
docker ps
进入mysql-master容器
docker exec -it mysql-master /bin/bashmysql -uroot -proot
容器进入成功,继续下一步
master容器实例内创建数据同步用户
安全加固,添加一个用户,然后授权
create user 'slave'@'%' identified by '123456';grant replication slave,replication client on *.* to 'slave'@'%';
新建从服务器容器实例3308
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.7ps以确认其up

进入/mydata/mysql-slave/conf新建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
在主数据库中查看主从同步状态
show master status;
进入mysql-slave容器
docker exec -it mysql-slave /bin/bash
mysql -uroot -proot

在从数据库中配置主从复制
是在从数据库配置,不是主!
change master to master_host='宿主机ip', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30;
change master to master_host='192.168.150.30', master_user='slave', master_password='123456', master_port=3307, 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 slave status \G;\G 是竖着来查看,有点类似于键值对
这里的Slave_IO_Running和Slave_SQL_Running都还是NO,没有启动

在从数据库中开启主从同步
start slave;

再次查看从数据库状态
show slave status \G;

成功。
主从复制测试
主数据库
主数据库新建库,新建表,插入数据
create database dbtest1;
use dbtest1;
create table test1 (id int,name varchar(20));
insert into test1 values(1,'van');
select * from test1;

从数据库
从数据库进行查找
show databases;
use dbtest1;
select * from test1;
测试成功!
边栏推荐
- 2022-07-28日报:Science:AI设计蛋白质再获突破,可设计特定功能性蛋白质
- 8、实时数据备份和实时时钟功能实现
- Baidu proposes a dynamic self distillation method to realize dense paragraph retrieval by combining interactive model and double tower model
- The subst command mirrors a folder to a local disk
- 关于word文档中插入的图片只显示下面一部分
- VS使用技巧
- 华为全球员工总数创新高:19.4万人,研发人员占比近50%
- 关闭独立窗口对其他窗口同时关闭的问题
- 位运算的一些操作
- Qt刷新UI界面问题
猜你喜欢

Endnote 与word关联

Pytorch - autograd automatic differentiation

融云实时社区解决方案

About the pictures inserted in the word document, only the following part is displayed

百度提出动态自蒸馏方法,结合交互模型与双塔模型实现稠密段落检索

关于word文档中插入的图片只显示下面一部分

flowable工作流所有业务概念

Matlab导出高清图片、且Word中压缩不失真、转换PDF不失真

Heap operation

Execution process of SQL statement
随机推荐
Matlab导出高清图片、且Word中压缩不失真、转换PDF不失真
堆操作
软件架构与设计(一)-----关键原则
7. Definitions of real-time data backup and real-time clock
Vs dynamic library debugging
爬虫入门(1)——requests(1)
Pytorch - autograd automatic differentiation
Leetcode - number of operations, non repeating numbers, diagonal traversal, Joseph Ring
Flowable workflow all business concepts
字符数组和字符串的区别
生命的感悟
提速1200倍!MIT开发新一代药物研发AI,吊打老模型
Deepfacelab model parameters collection
基于RSocket协议实现客户端与服务端通信
Some operations of bit operation
leetcode-括号有效性问题
GRC concept GRC architecture RPC lifecycle
Qt刷新UI界面问题
VirturalBox解决kernel driver问题
Rongyun real-time community solution