当前位置: 首页 > news >正文

docker mysql主从安装-元一软件

1. 首先拉去镜像

docker pull mysql:5.7

2. 运行镜像

主要将日志 存储文件, 配置文件 映射到主机上

docker run-p13307: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 \-eMYSQL_ROOT_PASSWORD=123456\-d mysql:5.7[root@basenode~]# docker run-p13307: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 \>-eMYSQL_ROOT_PASSWORD=123456\-d mysql:5.776176e5ae29317ea207080be62aeffadaada4c82c03753d2c500916449d6476e[root@basenode~]#

3. 主节点创建配置文件并且添加内容如下

1.目录:/mydata/mysql-master/cnf[root@basenodeconf]# vi 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. 添加完配置后重启mysql

[root@basenodeconf]# docker restart mysql-master mysql-master[root@basenodeconf]#

5. 进入到mysql 容器内部

# 进入到容器 docker exec-it mysql-master/bin/bash # 登录mysql mysql-uroot-p123456

6. 创建同步用户

6.1 创建用户命令:

mysql>CREATEUSER'slave'@'%'IDENTIFIEDBY'123456';QueryOK,0rows affected(0.01sec)mysql>GRANTREPLICATIONSLAVE,REPLICATIONCLIENTON*.*TO'slave'@'%';QueryOK,0rows affected(0.00sec)mysql>

7. 创建从服务器

[root@basenode~]# docker run-p13308: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 \>-eMYSQL_ROOT_PASSWORD=123456\>-d mysql:5.7230880d2ab8c53351656ceb3998e28595dcd5af28879de3755cf6c6993b0879d[root@basenode~]#

8. 从节点创建配置文件并且添加内容如下

[root@basenode~]# cd/mydata/mysql-slave/cnf[root@basenodeconf]# vi 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

9. 重启从节点

[root@basenodeconf]# docker restart mysql-slave mysql-slave[root@basenodeconf]#

10.在主数据库中查看主从同步状态

mysql>show master status;+-----------------------+----------+--------------+------------------+-------------------+|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|Executed_Gtid_Set|+-----------------------+----------+--------------+------------------+-------------------+|mall-mysql-bin.000001|154||mysql||+-----------------------+----------+--------------+------------------+-------------------+1row in set(0.00sec)mysql>

11. 进入从数据库

[root@basenodeconf]# docker exec-it mysql-slave/bin/bash root@230880d2ab8c:/# mysql-uroot-pEnterpassword:WelcometotheMySQLmonitor.Commandsendwith;or \g.YourMySQLconnection id is2Serverversion:5.7.36-logMySQLCommunityServer(GPL)Copyright(c)2000,2021,Oracleand/or itsaffiliates.Oracleis a registered trademark ofOracleCorporationand/or itsaffiliates.Othernames may be trademarks of their respectiveowners.Type'help;'or'\h'forhelp.Type'\c'toclearthe current input statement.mysql>show databases;+--------------------+|Database|+--------------------+|information_schema||mysql||performance_schema||sys|+--------------------+4rows in set(0.00sec)mysql>

12. 在从节点上执行同步命令

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;

mysql>change mastertomaster_host='192.168.1.180',master_user='slave',master_password='123456',master_port=13307,master_log_file='mall-mysql-bin.000001',master_log_pos=154,master_connect_retry=30;QueryOK,0rows affected,2warnings(0.00sec)mysql>

13. 在从节点上开启主从同步

mysql>start slave;

14 查看 从节点的状态

mysql>show slave status \G;***************************1.row***************************Slave_IO_State:WaitingformastertosendeventMaster_Host:192.168.1.180Master_User:slaveMaster_Port:13307Connect_Retry:30Master_Log_File:mall-mysql-bin.000001Read_Master_Log_Pos:154Relay_Log_File:mall-mysql-relay-bin.000002Relay_Log_Pos:325Relay_Master_Log_File:mall-mysql-bin.000001Slave_IO_Running:YesSlave_SQL_Running:YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno:0Last_Error:Skip_Counter:0Exec_Master_Log_Pos:154Relay_Log_Space:537Until_Condition:NoneUntil_Log_File:Until_Log_Pos:0Master_SSL_Allowed:NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master:0Master_SSL_Verify_Server_Cert:NoLast_IO_Errno:0Last_IO_Error:Last_SQL_Errno:0Last_SQL_Error:Replicate_Ignore_Server_Ids:Master_Server_Id:101Master_UUID:9eedd539-7601-11ec-93ac-0242ac110005Master_Info_File:/var/lib/mysql/master.infoSQL_Delay:0SQL_Remaining_Delay:NULLSlave_SQL_Running_State:Slavehas read all relay log;waitingformore updatesMaster_Retry_Count:86400Master_Bind:Last_IO_Error_Timestamp:Last_SQL_Error_Timestamp:Master_SSL_Crl:Master_SSL_Crlpath:Retrieved_Gtid_Set:Executed_Gtid_Set:Auto_Position:0Replicate_Rewrite_DB:Channel_Name:Master_TLS_Version:1row in set(0.00sec)ERROR:Noquery specified mysql>

主要出现 两个都位yes 就表示成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

15 测试成功

docker-mysql 主从.png

http://www.jsqmd.com/news/1195844/

相关文章:

  • AI安全通讯与受控模型发布机制解析
  • 【研发类-测试开发Skills】azure-resource-manager-playwright-dotnet 技能
  • 湖州德清县打岩石井多少钱一米,德清打井电话,莫干山民宿打井 - 瑞溪泉水利
  • 源代码论文分享|基于springboot的大创管理系统!
  • 原创角色保护系统:从DRM技术到完整技术架构实现
  • 从Hosts文件到现代网络映射:解析主机名与IP地址的底层逻辑
  • 从零手搓大模型(深挖细节GQA )现代大模型为什么不用普通 MHA
  • 鸿蒙应用开发实战【16】— bindSheet 底部弹出面板全解析
  • 2026年7月最新亨得利官方服务项目及价格查询|详细地址与服务电话权威信息声明 - 亨得利官方
  • 基于Python+爬虫的房屋租赁数据可视化系统设计与实现
  • 深入解析MOS管三个工作区及其在H桥电路中的关键应用
  • 2026最新:直播内容总结选哪5款免费实用工具,能控制时间成本?
  • 33-杨逢昌:制造业6S标准落地难破解方案——三层标准分层落地标准化体系
  • Kimi读Excel总卡顿?揭秘3个被官方文档刻意忽略的性能优化关键点:实测提速300%
  • DS90UB954-Q1寄存器驱动实战:中断、AEQ调优与模式生成器应用
  • **2026毓典奢品汇天津黄金二手流通市场深度测评:五大回收机构星级评级与避坑指南** - 二奢行情速报
  • ChatGPT版本解析与API集成开发实战指南
  • 学习栈:YOLO学习一定要学习python吗 ,pytorch与yolo的关系
  • [工业自动化-2]:PLC硬件架构与信号处理链路
  • 从ADC读数到PPM:MQ-2烟雾传感器的电压-浓度转换实战解析
  • 福州卖钻戒当心拆石扣费!靠谱钻石回收店铺无拆石、金属损耗附加费 - 每日生活报
  • 【MV】Camera Calibration Fundamentals: Image Formation
  • 怕被虚高报价套路?武汉手表回收认准奢二网全程明细化估价 - 大牌深度测评
  • 高效的ROHS分析仪行业十大品牌:为何天瑞与泓盛能成为电子电器行业的首选? - 品牌推荐大师
  • 量化交易核心:正期望值、夏普比率与海龟策略构建稳定盈利系统
  • (八)STM32 USART —— 从电平转换到DMA:构建高效串口通信系统
  • AMIS【部署 02】从零到一:amis-editor可视化编辑器私有化部署与Nginx实战配置
  • Zotero+坚果云+ZotFile:构建高效文献管理生态的进阶指南
  • 计算优化第一步:结构化问题诊断协议
  • C++面向对象单链表实现:从封装、RAII到迭代器的完整指南