当前位置:网站首页>docker MySQL主从备份
docker MySQL主从备份
2022-04-23 11:25:00 【oaa114龙仔】
1.下载mysql:5.7镜像
docker pull mysql:5.7
2.创建挂载目录
vi mk.sh
mkdir -p install /root/mysqlms/data
mkdir -p install /root/mysqlms/conf.d
mkdir -p install /root/mysqlms/mysql-files
mkdir -p install /root/mysqlsl/data
mkdir -p install /root/mysqlsl/conf.d
mkdir -p install /root/mysqlsl/mysql-files
./mk.sh
3.创建主服务器
创建主容器
docker run --name sqlms -p 3306:3306 -d -v /root/mysqlms/data:/var/lib/mysql/ -v /root/mysqlms/mysql-files:/var/lib/mysql-files/ -v /root/mysqlms/conf.d:/etc/mysql/conf.d/ -e MYSQL_ROOT_PASSWORD=root mysql:5.7
进入主容器并将my.cnf删除
docker exec -it sqlms bin/bash
rm -rf my.cnf
exit
退出容器
主机内配置主服务器
进入挂载目录
cd /root/sqlms/conf.d
创建一个mysql配置文件
vi my.cnf
#开启bin-log日志并给与一个id
[mysqld]
server-id=1
log-bin=mysql-bin
然后进主容器内将my.cnf移动到原来的目录
mv my.cnf /etc/mysql/
docker restart sqlms
创建从服务容器
创建从服务器
docker run --name sqlsl -p 3307:3306 -d -v /root/mysqlsl/data:/var/lib/mysql/ -v /root/mysqlsl/mysql-files:/var/lib/mysql-files/ -v /root/mysqlsl/conf.d:/etc/mysql/conf.d/ -e MYSQL_ROOT_PASSWORD=root mysql:5.7
重复主服务容器的操作直到mysql配置文件
修改从mysql配置文件
进入挂载目录
cd /root/sqlms/conf.d
生成配置文件
vi my.cnf
[mysqld]
server-id=2
log-bin=mysql-slave-bin
relay_log=edu-mysql-relay-bin
重启服务
docker restart sqlsl
准备环节结束开始正式操作
主服务容器操作
进入主容器启动mysql
docker exec -it sqlms bin/bash
mysql -uroot -proot
在命令行输入
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
创建一个slave用户并授权读写任何文件权限,用于主从备份数据
show master status;
需要使用到file和pos数据
从服务容器操作
mysql命令行输入
change master to master_host='172.17.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 154, master_connect_retry=60;
master_log_pos=154 ,就是值记录最大位置
master_host :Master的地址,指的是容器的独立ip
master_port:Master的端口号,指的是容器的端口号
master_user:用于数据同步的用户
master_password:用于同步的用户的密码
master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值
master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒
start slave;
开启主从备份
show slave status \G
查看状态
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
上两项值都是yes则开启成功,如果其中有no或者connection就代表开启失败。
版权声明
本文为[oaa114龙仔]所创,转载请带上原文链接,感谢
https://blog.csdn.net/vxandox/article/details/124351294
边栏推荐
- Laravel always returns JSON response
- VM set up static virtual machine
- Laravel admin time range selector daterange default value problem
- Canvas详解
- 分享两个实用的shell脚本
- Learn go language 0x06: Fibonacci closure exercise code in go language journey
- Study notes of C [8] SQL [1]
- MySQL面试题讲解之如何设置Hash索引
- Understanding of fileprovider path configuration strategy
- FileProvider 路径配置策略的理解
猜你喜欢
随机推荐
学习 Go 语言 0x05:《Go 语言之旅》中映射(map)的练习题代码
laravel-admin时间范围选择器dateRange默认值问题
Jupyter lab top ten high productivity plug-ins
Summary of the relationship among GPU, CUDA and cudnn
学习 Go 语言 0x08:《Go 语言之旅》中 练习使用 error
QT 怎么把QWigdet变成QDialog
mysql创建存储过程及函数详解
MySQL对数据表已有表进行分区表的实现
学习 Go 语言 0x01:从官网开始
MIT:用无监督为世界上每个像素都打上标签!人类:再也不用为1小时视频花800个小时了
学习 Go 语言 0x06:《Go 语言之旅》中 斐波纳契闭包 练习题代码
得物技术网络优化-CDN资源请求优化实践
GPU, CUDA,cuDNN三者的关系总结
Understanding of fileprovider path configuration strategy
MQ在laravel中简单使用
MySQL sorting feature details
解读2022机器人教育产业分析报告
nacos基础(5):nacos配置入门
解读机器人创造出来的艺术
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑