如何在mysql中查看SQL执行日志

20次阅读

开启mysql SQL 执行日志需配置通用查询日志或慢查询日志。1. 通用日志记录所有 SQL,通过 SET GLOBAL general_log = ON 启用,可输出至文件或表;2. 慢查询日志用于捕获执行时间超过阈值的 SQL,通过 SET GLOBAL slow_query_log = ON 和 long_query_time 设置;3. 持久化配置需在 my.cnf 中添加相应参数并重启服务。生产环境建议慎用通用日志,避免性能影响和磁盘占用。

如何在 mysql 中查看 SQL 执行日志

mysql 中查看 SQL 执行日志,主要依赖于开启通用查询日志(General Query Log)或使用慢查询日志(Slow Query Log)来捕获执行的 SQL 语句。以下是具体操作方法。

启用通用查询日显(记录所有 SQL 执行)

通用查询日志会记录所有发送到 MySQL 服务器的 SQL 语句,适合用于调试和审计。

1. 查看当前是否开启:
SHOW varIABLES LIKE 'general_log%';
如果 general_log 值为 OFF,则未开启。
2. 开启通用日志(临时生效):
SET GLOBAL general_log = ON;
日志默认输出到表或文件,由 general_log_filelog_output 决定。
3. 设置日志输出方式:
– 输出到文件:
SET GLOBAL log_output = 'FILE';
并指定文件路径:
SET GLOBAL general_log_file = '/var/log/mysql/general.log'; – 输出到 数据库 表(mysql.general_log):
SET GLOBAL log_output = 'table';
4. 查看日志内容:
若输出到表:
select * FROM mysql.general_log ORDER BY event_time DESC LIMIT 100;

配置慢查询日志(定位执行慢的 SQL)

如果你只关心执行时间较长的 SQL,建议使用慢查询日志,性能影响更小。

如何在 mysql 中查看 SQL 执行日志

如知 AI 笔记

如知笔记——支持 markdown 的在线笔记,支持 ai 智能写作、AI 搜索,支持 DeepseekR1 满血大模型

如何在 mysql 中查看 SQL 执行日志27

查看详情 如何在 mysql 中查看 SQL 执行日志

1. 开启慢查询日志:
SET GLOBAL slow_query_log = ON;
2. 设置慢查询阈值(单位:秒):
例如设置超过 1 秒的查询为“慢”:
SET GLOBAL long_query_time = 1;
3. 指定慢日志文件路径:
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';
4. 查看慢查询日志内容:
直接使用命令行查看文件:
tail -f /var/log/mysql/slow.log
或使用 mysqldumpslow 工具 分析:
mysqldumpslow /var/log/mysql/slow.log

持久化配置(重启后仍生效)

上述 SET 命令仅在当前运行时有效。要永久生效,需修改 MySQL 配置文件(如 my.cnf 或 my.ini)。

在 [mysqld] 段添加:

[mysqld] # 开启通用日志 general_log = ON general_log_file = /var/log/mysql/general.log log_output = FILE <h1> 开启慢查询日志 </h1><p>slow_query_log = ON slow_query_log_file = /var/log/mysql/slow.log long_query_time = 1</p>

修改后重启 MySQL 服务。

基本上就这些。根据实际需求选择开启通用日志或慢查询日志,注意通用日志对性能有一定影响,生产环境慎用。日志文件需要定期清理,避免占用过多磁盘空间。

站长
版权声明:本站原创文章,由 站长 2025-10-30发表,共计1480字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources