MySQL 主从复制问题排查与解决方案

type
status
date
slug
summary
tags
category
icon
password

📋 核心问题概述

  1. Socket 文件丢失 (mysql.sock 不存在)
  1. 磁盘空间耗尽导致服务异常
  1. 主从复制连接认证失败
  1. 二进制日志文件找不到错误

1. Socket 文件丢失问题

🔍 现象

🎯 根本原因

  • MySQL 服务未运行(最常见)
  • 服务端与客户端配置的 socket 路径不一致

🛠️ 解决方案

检查服务状态

启动服务

检查实际 socket 路径

临时解决方案(使用TCP连接)

永久解决方案

  1. 修改客户端配置
    1. 添加:
  1. 创建符号链接

    2. 磁盘空间耗尽问题

    🔍 现象

    • MySQL 无法创建新文件
    • InnoDB 无法打开重做日志文件
    • 根分区显示 100% 使用率

    🛠️ 解决方案

    紧急释放空间

    扩展磁盘空间(LVM环境)


    3. 主从复制认证问题

    🔍 现象

    🛠️ 解决方案

    方法1: 使用 GET_MASTER_PUBLIC_KEY(推荐)

    方法2: 更改认证插件

    方法3: 配置SSL连接


    4. 二进制日志文件找不到错误

    🔍 现象

    🛠️ 解决方案

    重新配置复制位置

    1. 在主库获取当前日志状态
      1. 在从库重新配置

        完全重置复制


        📊 常用监控与诊断命令

        服务状态检查

        复制状态检查

        连接与权限检查

        空间监控


        🛡️ 预防措施

        定期维护任务

        1. 监控磁盘空间:设置警报阈值(如80%)
        1. 清理二进制日志
          1. 定期检查复制状态
          1. 备份重要数据

          配置优化建议

          1. 为复制用户指定认证插件
            1. 分离数据目录:将MySQL数据目录放在独立分区
            1. 配置合理的日志轮换策略

            🚨 紧急恢复流程

            1. 检查服务状态systemctl status mysqld
            1. 检查磁盘空间df -h
            1. 尝试TCP连接mysql -h 127.0.0.1 -u root -p
            1. 检查错误日志tail -f /var/log/mysqld.log
            1. 根据具体错误选择解决方案

            💡 总结要点

            1. Socket文件问题:根本原因是服务未运行或路径不一致
            1. 磁盘空间问题:需要及时监控和清理
            1. 认证问题:MySQL 8.0默认使用 caching_sha2_password,需要安全连接
            1. 复制位置问题:确保主从日志文件和位置一致
            1. 定期监控:预防胜于治疗,建立完善的监控体系
            Loading...