Ubuntu下MySQL故障排查有哪些方法
导读:Ubuntu下MySQL故障排查方法 一 快速定位流程 检查服务状态与启动失败原因:执行sudo systemctl status mysql,若失败,优先查看**/var/log/mysql/error.log**获取具体报错。 确认资...
Ubuntu下MySQL故障排查方法
一 快速定位流程
- 检查服务状态与启动失败原因:执行sudo systemctl status mysql,若失败,优先查看**/var/log/mysql/error.log**获取具体报错。
- 确认资源是否充足:用top、free -h、df -h排查CPU/内存/磁盘瓶颈。
- 验证端口与连通性:用sudo netstat -tulnp | grep 3306检查端口占用;远程连接测试用telnet your_ip 3306或nc -zv your_ip 3306。
- 复核关键配置:配置文件通常在**/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf**,重点核对bind-address、port。
- 变更后重启并复测:sudo systemctl restart mysql,再次验证服务与连接。
二 常见故障与处理要点
- 服务无法启动:查看error.log定位是配置错误、权限问题还是磁盘空间不足;修复后重启。
- 权限与认证错误:如ERROR 1045 (28000),检查用户主机与密码;必要时重置root密码或执行mysql_secure_installation。
- 端口冲突:若3306被占用,停止占用进程或修改MySQL端口后重启。
- 远程连接被拒:确认bind-address=0.0.0.0(或注释该行)、ufw放行3306/tcp,并确保用户授权为**‘user’@‘%’**。
- Socket连接错误:如“Can’t connect to local MySQL server through socket”,检查**/tmp/mysql.sock或/var/run/mysqld**目录及权限,必要时创建目录并赋权后重启。
- 主机被阻断:出现“Host is blocked…”时,执行mysqladmin flush-hosts清空主机缓存。
三 日志与性能分析
- 错误日志:默认路径**/var/log/mysql/error.log**,用于定位启动失败、崩溃、权限等问题。
- 慢查询日志:在配置中启用slow_query_log=1、设置long_query_time(如2秒),分析工具用mysqldumpslow或pt-query-digest。
- 通用日志与日志路径查询:动态查看变量general_log_file、log_error、slow_query_log_file确认实际日志位置与开关。
- 日志轮转:使用logrotate管理日志大小与保留,避免磁盘被撑满。
四 常用命令速查表
| 目标 | 命令示例 |
|---|---|
| 服务状态 | sudo systemctl status mysql |
| 启动/重启 | sudo systemctl start |
| 查看错误日志 | sudo tail -f /var/log/mysql/error.log |
| 端口占用 | sudo netstat -tulnp |
| 防火墙放行 | sudo ufw allow 3306/tcp |
| 远程连通性测试 | telnet your_ip 3306 或 nc -zv your_ip 3306 |
| 权限授权 | GRANT ALL PRIVILEGES ON . TO ‘user’@‘%’ IDENTIFIED BY ‘pwd’; FLUSH PRIVILEGES; |
| 刷新主机缓存 | mysqladmin -u root -h your_ip flush-hosts |
| 慢查询分析 | mysqldumpslow -s t -t 10 /var/log/mysql/slow.log |
| 磁盘与资源 | df -h; free -h; top |
五 数据安全与恢复建议
- 变更前备份:对**/var/lib/mysql**与配置文件做完整备份。
- 配置调整与重启:修改my.cnf或mysqld.cnf后,使用sudo systemctl restart mysql使配置生效。
- 无法恢复时的重建:在确保有备份的前提下,执行卸载与重装(purge后重装),再恢复数据与配置。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu下MySQL故障排查有哪些方法
本文地址: https://pptw.com/jishu/748544.html
