当前位置:网站首页>使用docker搭建mysql主从
使用docker搭建mysql主从
2022-07-31 11:58:00 【~庞贝】
目录
使用docker搭建mysql主从
首先需要准备docker环境
1.拉取mysql镜像
docker pull mysqlL:5.7
2.启动mysql
# 将容器中的日志、数据、配置文件关联映射到宿主机当中,容器删除或者挂掉也不怕数据丢失,主机中的数据还在
docker run -d -p 3307:3306 --privileged=true -v /home/mysql-master/log:/var/log/mysql -v /home/mysql-master/data:/var/lib/mysql -v /home/mysql-master/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql_master docker.io/mysql:5.7
#解释
docker run -d -p 3307:3306 --privileged=true
-v /home/mysql-master/log:/var/log/mysql #日志
-v /home/mysql-master/data:/var/lib/mysql #数据
-v /home/mysql-master/conf:/etc/mysql#配置文件
-e MYSQL_ROOT_PASSWORD=123456 #root密码
--name mysql_master docker.io/mysql:5.7 #设置名字
3.添加mysql的配置文件
在/home/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
4.修改完配置后重启master实例
docker restart mysql_master
5.进入mysql
查看ip
docker inspect mysql_master
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uG7gN0zR-1659166986339)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220730152418129.png)]](/img/45/06cc1796f3d183f4c975faf197ca58.png)
mysql -uroot -h172.17.0.1 -P3307 -p123456
6.进入mysql-master容器,并在容器内创建数据同步用户(指定那个用户能够同步我的数据即授权)
CREATE USER ‘slave’@‘%’ IDENTIFIED BY ‘123456’;
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘slave’@‘%’;
7.创建从数据库实例3308
docker run -d -p 3308:3306 --privileged=true -v /home/mysql-salve/log:/var/log/mysql -v /home/mysql-salve/data:/var/lib/mysql -v /home/mysql-salve/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql_salve docker.io/mysql:5.7
8.进入从配置文件中创建my.cnf ,配置完后重启mysql从机
在/home/mysql-salve/conf 路径下创建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
重启mysql-salve
docker restart mysql_salve
9.在主数据库中查看数据同步状态
show master status;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sWw6WFum-1659166986340)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220730153122349.png)]](/img/9f/2a38e91df80e9ea63f666a905f0e99.png)
10.进入slave(从数据库)中,在从数据库中配置主从复制(主从同步)
#配置主从
change master to master_host='172.17.0.1',master_user='slave',master_password='123456',master_port=3307,master_log_file='mall-mysql-bin.000002',master_log_pos=154,master_connect_retry=30;
#解释
master_host:主数据库的IP地址;
master_port:主数据库的运行端口;
master_user:在主数据库创建的用于同步数据的用户账号;
master_password:在主数据库创建的用于同步数据的用户密码;
master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取File参数;
master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取Position参数;
master_connect_retry:连接失败重试的时间间隔,单位为秒。
11.在从数据库中开启主从同步,并查看状态
start slave;
从从数据库中查看主从同步状态
show slave status \G;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OXcCueYx-1659166986341)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220730153302866.png)]](/img/b9/665747b0eb71997b0b4ed68df3e335.png)
边栏推荐
猜你喜欢

台达PLC出现通信错误或通信超时或下载时提示机种不符的解决办法总结

am335x 看门狗驱动&看门狗应用例程序

Android studio connects to MySQL and completes simple login and registration functions
502 bad gateway causes and solutions

MySQL 的几种碎片整理方案总结(解决delete大量数据后空间不释放的问题)

才22岁!这位'00后'博士拟任职985高校!

MySQL百万数据优化总结 一

一文带你了解redux的工作流程——actionreducerstore

The item 'node.exe' was not recognized as the name of a cmdlet, function, script file, or runnable program.

DCM 中间件家族迎来新成员
随机推荐
busybox之reboot命令流程分析
Obsidian设置图床
分布式事务——分布式事务简介、分布式事务框架 Seata(AT模式、Tcc模式、Tcc Vs AT)、分布式事务—MQ
Docker搭建Mysql主从复制
【核心概念】图像分类和目标检测中的正负样本划分以及架构理解
订song餐系统
How to correctly write the binary stream of the file returned by the server to the local file and save it as a file
The most complete phpmyadmin vulnerability summary
VBA实现双击单元格自动输出对号再次双击取消对号
502 bad gateway causes and solutions
Use Excel to read data exposed by SAP ABAP CDS View through ODBC
连续变量离散化教程
Mysql环境变量的配置(详细图解)
mysql 索引使用与优化
Docker build Mysql master-slave replication
musl Reference Manual
生信周刊第38期
想吃菌子,当然是自己上山找了
最长算术(暑假每日一题 11)
vb.net 画曲线