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

MySQL实现双机热备

此操作默认两台服务器中 MySQL 完成初始化安装

服务器A:192.168.239.170

服务器B:192.168.239.180

1、修改配置文件

  • 修改服务器A my.cnf 配置文件,使其至少包含以下配置
[mysqld] # 标识MySQL实例的唯一ID server_id=1 # 开启二进制日志 log_bin=mysql-bin # 指定binlog记录模式 binlog_format=ROW # 指定从库relay log文件名 relay-log=relay-log # 开启GTID复制 gtid_mode=ON # 保证所有事务都能生成GTID enforce_gtid_consistency=ON # 从库执行的事务也写入自己的 binlog log_slave_updates=ON
  • 修改服务器B my.cnf 配置文件,使其至少包含以下配置(server_id 需确保不同)
[mysqld] # 标识MySQL实例的唯一ID server_id=2 # 开启二进制日志 log_bin=mysql-bin # 指定binlog记录模式 binlog_format=ROW # 指定从库relay log文件名 relay-log=relay-log # 开启GTID复制 gtid_mode=ON # 保证所有事务都能生成GTID enforce_gtid_consistency=ON # 从库执行的事务也写入自己的 binlog log_slave_updates=ON
  • 配置修改完成后,重启两台服务器的 MySQL 服务
systemctl restart mysqld

2、创建同步用户

  • 若服务器开启了防火墙,需开发 MySQL 连接端口
firewall-cmd--zone=public --add-port=3306/tcp--permanentfirewall-cmd--reload
  • 在服务器A中登录数据库
mysql -uroot -p -h127.0.0.1
  • 创建 MySQL 主从复制用户,并授予复制权限(此步骤仅需在A库中操作,待B库开启同步后会同步到B库)
-- 创建只允许服务器A连接的用户CREATEUSER'repl'@'192.168.239.170'IDENTIFIEDWITHmysql_native_passwordBY'123456';-- 赋予复制权限GRANTREPLICATIONSLAVEON*.*TO'repl'@'192.168.239.170';-- 创建只允许服务器B连接的用户CREATEUSER'repl'@'192.168.239.180'IDENTIFIEDWITHmysql_native_passwordBY'123456';-- 赋予复制权限GRANTREPLICATIONSLAVEON*.*TO'repl'@'192.168.239.180';-- 刷新权限FLUSHPRIVILEGES;

  • 配置GTID同步(此时登录的是服务器A的MySQL,所以A库为备库,B库为主库)
-- 配置当前服务器的主库连接信息,用于建立主从复制关系CHANGE MASTERTO-- 指定主库的IP地址(这里是192.168.239.180)MASTER_HOST='192.168.239.180',-- 指定用于复制的用户名MASTER_USER='repl',-- 指定复制用户的密码MASTER_PASSWORD='123456',-- 使用 GTID 自动定位复制位置,不需要手动指定 binlog 文件和位置MASTER_AUTO_POSITION=1;
  • 启动同步
STARTSLAVE;

  • 在服务器B中登录数据库
mysql -uroot -p -h127.0.0.1
  • 配置GTID同步(此时登录的是服务器B的MySQL,所以B库为备库,A库为主库)
-- 配置当前服务器的主库连接信息,用于建立主从复制关系CHANGE MASTERTO-- 指定主库的IP地址(这里是192.168.239.170)MASTER_HOST='192.168.239.170',-- 指定用于复制的用户名MASTER_USER='repl',-- 指定复制用户的密码MASTER_PASSWORD='123456',-- 使用 GTID 自动定位复制位置,不需要手动指定 binlog 文件和位置MASTER_AUTO_POSITION=1;
  • 启动同步
STARTSLAVE;

  • 查看主备同步状态(Slave_IO_Running和Slave_SQL_Running 均为 Yes 即主从配置成功)
SHOW SLAVE STATUS\G

3、测试用例

  • 在A库中创建测试数据库及表结构并插入一条测试数据
CREATEDATABASErepl_test;USErepl_test;CREATETABLEsync_test(idINTPRIMARYKEYAUTO_INCREMENT,nameVARCHAR(50),create_timeTIMESTAMPDEFAULTCURRENT_TIMESTAMP);INSERTINTOsync_test(name)VALUES('test1');

  • 在B库中查看数据是否同步
select*fromrepl_test.sync_test;

  • 在B库中插入数据
USErepl_test;INSERTINTOsync_test(name)VALUES('test2');INSERTINTOsync_test(name)VALUES('test3');

  • 在A库中查看数据是否同步

至此,MySQL 双机热备配置完成

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

相关文章:

  • Android Studio中文语言包深度适配指南:从问题诊断到生态构建
  • 回收盒马鲜生卡的最佳时机和技巧:省时省力全过程揭秘 - 团团收购物卡回收
  • 运行FAST_LIO
  • “隐形”的可靠性:沃虎波峰焊工艺指导如何确保连接器在量产中的万无一失
  • Qwen-Image-2512-SDNQ开源大模型:SVR低秩微调技术落地解析
  • JDK中intBitsToFloat的具体实现
  • 天硕TOPSSD解读商业航天爆发下:星载存储如何支撑中国星网与千帆计划
  • 数据立方体的核心用法
  • OpenClaw开发助手:千问3.5-9B辅助代码调试与日志分析
  • openclaw实战:基于快马平台生成工业自动化分拣系统模拟应用
  • 2026年市场有实力的铝型材围栏生产厂家联系方式,工业铝型材/铝型材连接件/流水线铝型材,铝型材围栏直销厂家哪个好 - 品牌推荐师
  • 首发定档!2026中国航空维修制造及航材供应链展览会将于10 月在上海举办!
  • Windows下OpenClaw安装避坑:千问3.5-9B接口配置详解
  • Apache Doris与Apache Kylin聚合结果高效存储原理
  • 终极指南:三分钟上手Logisim-evolution数字电路设计与仿真
  • VibeCoding的原理
  • 万象视界灵坛快速部署:GitHub Actions自动构建+阿里云ACR镜像同步流程
  • B站视频转文字终极方案:智能语音识别工具如何让你效率提升300%
  • 5大维度解析:M3U8视频下载工具的技术突破与实战应用
  • MelonLoader Cpp2IL下载故障深度诊断与解决方案
  • Pixel Epic实战案例:用像素终端为乡村振兴项目生成可落地的实施建议报告
  • Hunyuan-MT-7B多场景实践:像素语言传送门在独立游戏开发、字幕生成、文档本地化中的三重应用
  • Zotero GPT插件:3步打造智能文献处理系统,效率提升300%的学术研究解决方案
  • 2026执业药师备考:深度拆解6款APP的押题逻辑! - 孤篇横绝
  • 2026 年十大网站建设公司哪家好?口碑网站建设公司推荐
  • 运维成功转行网安:2026行情解析+专属学习路径+核心优势盘点
  • PyTorch 2.8镜像实际作品:使用FlashAttention-2加速的13B模型推理日志
  • Gemma-3 Pixel Studio快速上手:支持表格图像的结构化数据提取技巧
  • NVIDIA Profile Inspector配置故障解决:3步攻克设置失效与保存失败问题
  • 能源研究院转让选哪家