MySQL 主从复制问题排查与解决方案
type
status
date
slug
summary
tags
category
icon
password
📋 核心问题概述
- Socket 文件丢失 (
mysql.sock不存在)
- 磁盘空间耗尽导致服务异常
- 主从复制连接认证失败
- 二进制日志文件找不到错误
1. Socket 文件丢失问题
🔍 现象
🎯 根本原因
- MySQL 服务未运行(最常见)
- 服务端与客户端配置的 socket 路径不一致
🛠️ 解决方案
检查服务状态
启动服务
检查实际 socket 路径
临时解决方案(使用TCP连接)
永久解决方案
- 修改客户端配置:
添加:
- 创建符号链接:
2. 磁盘空间耗尽问题
🔍 现象
- MySQL 无法创建新文件
- InnoDB 无法打开重做日志文件
- 根分区显示 100% 使用率
🛠️ 解决方案
紧急释放空间
扩展磁盘空间(LVM环境)
3. 主从复制认证问题
🔍 现象
🛠️ 解决方案
方法1: 使用 GET_MASTER_PUBLIC_KEY(推荐)
方法2: 更改认证插件
方法3: 配置SSL连接
4. 二进制日志文件找不到错误
🔍 现象
🛠️ 解决方案
重新配置复制位置
- 在主库获取当前日志状态:
- 在从库重新配置:
完全重置复制
📊 常用监控与诊断命令
服务状态检查
复制状态检查
连接与权限检查
空间监控
🛡️ 预防措施
定期维护任务
- 监控磁盘空间:设置警报阈值(如80%)
- 清理二进制日志:
- 定期检查复制状态
- 备份重要数据
配置优化建议
- 为复制用户指定认证插件:
- 分离数据目录:将MySQL数据目录放在独立分区
- 配置合理的日志轮换策略
🚨 紧急恢复流程
- 检查服务状态 →
systemctl status mysqld
- 检查磁盘空间 →
df -h
- 尝试TCP连接 →
mysql -h 127.0.0.1 -u root -p
- 检查错误日志 →
tail -f /var/log/mysqld.log
- 根据具体错误选择解决方案
💡 总结要点
- Socket文件问题:根本原因是服务未运行或路径不一致
- 磁盘空间问题:需要及时监控和清理
- 认证问题:MySQL 8.0默认使用 caching_sha2_password,需要安全连接
- 复制位置问题:确保主从日志文件和位置一致
- 定期监控:预防胜于治疗,建立完善的监控体系
Loading...