MySQL在CentOS上的日志如何查看
导读:查看 MySQL 日志的常用路径与命令 在 CentOS 上,MySQL 的日志常见位置与类型如下(不同安装方式或配置可能有所差异): 错误日志:常见为 /var/log/mysqld.log 或 /var/log/mysql/erro...
查看 MySQL 日志的常用路径与命令
- 在 CentOS 上,MySQL 的日志常见位置与类型如下(不同安装方式或配置可能有所差异):
- 错误日志:常见为 /var/log/mysqld.log 或 /var/log/mysql/error.log
- 慢查询日志:常见为 /var/log/mysql/slow-query.log 或数据目录下以主机名命名的文件(如 /var/lib/mysql/-slow.log)
- 通用查询日志:常见为 /var/log/mysql/mysql.log(默认多为关闭)
- 二进制日志(用于复制/恢复):常见为 /var/lib/mysql/-bin.00000X
- 快速查看命令(按实际路径替换):
- 实时查看错误日志:
sudo tail -f /var/log/mysqld.log - 分页查看:
sudo less /var/log/mysql/error.log - 列出日志目录:
ls -l /var/log/mysql/
- 实时查看错误日志:
- 若不确定日志路径,可在 MySQL 内查询变量:
SHOW VARIABLES LIKE 'log_error';(错误日志);慢查询与通用日志同理使用对应变量名。
在 MySQL 内确认日志配置
- 登录 MySQL 后,使用以下 SQL 查看关键日志参数与路径:
- 错误日志:
SHOW VARIABLES LIKE 'log_error'; - 慢查询日志:
SHOW VARIABLES LIKE 'slow_query_log%'; - 通用查询日志:
SHOW VARIABLES LIKE 'general_log%'; - 慢查询阈值:
SHOW VARIABLES LIKE 'long_query_time';
- 错误日志:
- 示例输出解读:
slow_query_log=OFF/ON表示是否开启slow_query_log_file显示慢日志完整路径long_query_time为判定慢查询的秒数阈值(如 2.000000 秒)
启用与验证慢查询日志
- 动态开启(无需重启,重启后失效):
SET GLOBAL slow_query_log = 'ON';SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';SET GLOBAL long_query_time = 2;- 可选:
SET GLOBAL log_queries_not_using_indexes = 'ON';(记录未使用索引的查询)
- 永久生效(修改配置文件后重启):
- 编辑 /etc/my.cnf(或 /etc/mysql/my.cnf),在 [mysqld] 段加入:
slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 2 - 重启服务:
sudo systemctl restart mysqld
- 编辑 /etc/my.cnf(或 /etc/mysql/my.cnf),在 [mysqld] 段加入:
- 验证与测试:
- 确认参数:
SHOW VARIABLES LIKE 'slow_query_log%';、SHOW VARIABLES LIKE 'long_query_time'; - 触发记录:
SELECT SLEEP(3); - 查看日志:
sudo tail -f /var/log/mysql/slow.log
- 确认参数:
启用与查看通用查询日志
- 动态开启(临时):
SET GLOBAL general_log = 'ON';SET GLOBAL general_log_file = '/var/log/mysql/mysql.log';
- 永久生效(修改配置后重启):
- 在 [mysqld] 段加入:
general_log = 1 general_log_file = /var/log/mysql/mysql.log - 重启服务:
sudo systemctl restart mysqld
- 在 [mysqld] 段加入:
- 查看方式:
- 实时查看:
sudo tail -f /var/log/mysql/mysql.log - 注意:通用查询日志会产生大量数据,生产环境建议仅在排障时临时开启
- 实时查看:
日志轮转与空间管理
- 使用 logrotate 管理 MySQL 日志(示例配置 /etc/logrotate.d/mysql):
/var/log/mysql/*.log { daily missingok rotate 14 compress delaycompress notifempty create 640 mysql mysql } - 作用:按天轮换、最多保留 14 个旧日志、压缩归档,避免日志无限增长占满磁盘
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MySQL在CentOS上的日志如何查看
本文地址: https://pptw.com/jishu/749710.html
