/var/log/mysqld.log
,使用命令sudo tail -f /var/log/mysqld.log
可实时查看最新日志,若路径不同,需在MySQL配置文件my.cnf
中查找log-error
设置项。先定位日志文件路径
MySQL日志路径由配置文件决定,按顺序检查:
# 查看MySQL配置文件路径(通常为/etc/my.cnf或/etc/mysql/my.cnf) sudo grep -i "log-error" /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf # 若未配置,登录MySQL查询错误日志路径 mysql -u root -p SHOW VARIABLES LIKE 'log_error';
查看不同日志的详细方法
错误日志(Error Log)
-
作用:记录启动/运行中的严重错误(如崩溃、表损坏)。
-
查看命令:
# 实时追踪最新错误 sudo tail -f /var/log/mysql/error.log # 根据实际路径调整 # 查看最近100行 sudo tail -n 100 /var/log/mysql/error.log
慢查询日志(Slow Query Log)
-
作用:记录执行时间超过阈值的SQL(默认10秒)。
-
启用步骤:
-- 检查状态和路径 SHOW VARIABLES LIKE 'slow_query_log%'; SHOW VARIABLES LIKE 'long_query_time'; -- 临时启用(重启失效) SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 2; -- 阈值设为2秒
-
查看日志:
sudo less /var/lib/mysql/ubuntu-slow.log # 路径根据配置调整
查询日志(General Query Log)
- 作用:记录所有SQL操作(慎用,影响性能)。
- 启用与查看:
-- 登录MySQL启用 SET GLOBAL general_log = 'ON'; SHOW VARIABLES LIKE 'general_log_file'; -- 获取路径
sudo tail -f /var/lib/mysql/ubuntu.log # 实时监控
二进制日志(Binary Log)
-
作用:记录数据变更(用于主从复制/数据恢复)。
-
查看方法:
# 转换为可读文本(需mysqlbinlog工具) mysqlbinlog /var/lib/mysql/binlog.000001 # 过滤特定时间段 mysqlbinlog --start-datetime="2025-10-01 09:00:00" --stop-datetime="2025-10-02 10:00:00" binlog.000001
关键注意事项
- 权限问题:日志文件通常属
mysql
用户,需用sudo
或授权:sudo chmod 644 /var/log/mysql/error.log # 临时授权当前用户
- 日志清理:定期清理避免磁盘占满(用
truncate
而非直接删除):sudo truncate -s 0 /var/log/mysql/slow.log
- 性能影响:启用查询日志/慢日志会增加I/O压力,调试后及时关闭。
总结建议
- 优先检查错误日志:80%的启动问题在此定位。
- 性能优化用慢查询日志:找出需优化的SQL。
- 二进制日志用于数据安全:定期备份并测试恢复流程。
- 生产环境慎用查询日志:仅临时调试使用。
引用说明:本文操作基于MySQL 8.0官方文档,路径及命令以Linux主流发行版(Ubuntu/CentOS)为准,具体参数请参考:MySQL 8.0 Log Documentation。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/31229.html