AMH面板环境MySQL主从同步问题排查与解决日志

社区话题 Linux/macOS 与自动化运维 AMH面板环境MySQL主从同步问题排查与解决日志

正在查看 1 条回复
  • 作者
    帖子
    • #1124

      追光
      管理员

      MySQL主从同步问题排查与解决日志

      ? 问题发生时间
      2025年9月

      ? 问题描述
      使用AMH面板配置MySQL主从同步,配置完成后同步未开始工作。

      ? 环境信息

      主服务器IP: 10.241.105.11
      从服务器IP: 10.241.105.130
      MySQL版本: 5.7.44
      部署方式: AMH面板主从同步插件

      ? 排查过程

      第一步:连接测试
      bash

      mysql -h 10.241.105.11 -P 3306 -u jisongbin -p1234567

      结果: 连接失败,错误信息:Access denied for user \’jisongbin\’@\’10.241.105.130\’


      第二步:用户权限检查
      通过phpMyAdmin检查发现用户未正确创建:
      sql

      SELECT User, Host FROM mysql.user WHERE User=\'jisongbin\';

      — 返回空结果


      第三步:创建复制用户
      sql

      CREATE USER \'jisongbin\'@\'%\' IDENTIFIED BY \'1234567\';
      GRANT REPLICATION SLAVE ON . TO \'jisongbin\'@\'%\';
      FLUSH PRIVILEGES;

      第四步:验证连接
      bash

      mysql -h 10.241.105.11 -P 3306 -u jisongbin -p1234567

      — 连接成功


      第五步:检查复制状态
      sql
      SHOW SLAVE STATUS\\G
      — 返回空结果,说明未配置复制关系


      第六步:配置主从关系
      发现权限不足,切换到root用户执行:
      sql

      CHANGE MASTER TO
      MASTERHOST=\'10.241.105.11\',
      MASTERUSER=\'amcsjimi\',
      MASTERPASSWORD=\'1234567\',
      MASTERPORT=3306;

      第七步:发现根本问题

      1、默认amh面板创建的服务端用户为 amcs_jisongbin,系统会默认加上amcs_前缀,所以手工测试时候要使用这个账号。

      2、当然不管是服务端还是客户端,AMH都会自动加上前缀,所以并不会因此造成任何问题,反而是安全的一种设置。


      启动复制时出现致命错误:

      Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs

      ? 根本原因分析
      从服务器是从主服务器克隆的镜像,导致主从服务器的serveruuid相同,存储在/home/usrdata/mysql-generic-5.7/auto.cnf文件中。

      ✅ 解决方案

      1. 停止MySQL服务
      bash

      amh mysql stop

      2. 删除UUID配置文件
      bash

      rm /home/usrdata/mysql-generic-5.7/auto.cnf

      3. 启动MySQL服务

      amh mysql start

      4. 验证UUID唯一性

      SHOW VARIABLES LIKE \'serveruuid\';

      — 主从服务器UUID必须不同

      5. 重启复制服务
      sql
      START SLAVE;
      SHOW SLAVE STATUS\\G
      — 确认SlaveIORunning和SlaveSQLRunning都为Yes

      ? 经验教训

      问题总结
      1. 用户权限配置:需要正确创建复制用户并授予REPLICATION SLAVE权限
      2. 网络连通性:确保从服务器能访问主服务器的3306端口
      3. UUID冲突:克隆服务器时必须删除auto.cnf文件,避免UUID重复
      4. 权限管理:配置主从复制需要SUPER权限,普通复制用户无法执行管理命令

      预防措施
      1. 克隆服务器后立即删除auto.cnf文件
      2. 使用AMH面板时确保正确配置用户权限和IP限制
      3. 定期检查主从复制状态:SHOW SLAVE STATUS\\G
      4. 监控SecondsBehindMaster指标,确保数据同步延迟正常

      ? 最终结果
      主从同步恢复正常工作,数据开始正常同步。

      记录人: NewVFX开发者社区
      解决时间: 2025年9月
      影响范围: MySQL主从复制服务
      解决方式: 删除重复UUID文件,重启MySQL服务

    • #1128

      追光
      管理员

      补充:Mysql主从复制模式下的主服务器mysql优化与从服务器优化

      主服务器优化配置:可用于AMH配置的主从复制也可以用于任意Mysql主从复制环境:

      # === 主从复制标识 ===
      server-id = 22346               # 唯一服务器ID,主从服务器必须不同
      # === 二进制日志基础配置 ===
      log-bin = mysql-bin             # 开启二进制日志,用于主从复制
      binlog_format = mixed           # 混合格式:根据SQL语句智能选择STATEMENT或ROW格式
      max_binlog_size = 100M          # 单个binlog文件最大100M,避免文件过大
      
      # === 二进制日志管理配置 ===
      expire_logs_days = 7            # 自动清理7天前的binlog文件,节省磁盘空间
      sync_binlog = 1                 # 每次事务提交都同步binlog到磁盘,保证数据安全
      binlog_cache_size = 1M          # 二进制日志缓存大小,小事务会使用内存缓存
      
      # === 主从复制配置结束 ===

      从服务器主从复制配置优化

      # === 主从复制配置 ===
      server-id = 15030
      slave-skip-errors = 1062,1032,1050,1146  # 不要用all,改为具体错误码
      replicate_wild_do_table=multisites.%
      master-info-repository = table
      relay-log-info-repository = table
      
      # === 日志大小限制 ===
      expire_logs_days = 7
      max_binlog_size = 100M          # 如果从服务器也开启binlog
      sync_binlog = 1
      # relay-log相关配置使用默认值即可
      
      # === 安全配置 ===
      read_only = 1
      super_read_only = 1
      # === 主从复制配置结束 ===
正在查看 1 条回复
  • 在下方一键注册,登录后就可以回复啦。