跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

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

开启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 执行日志,主要依赖于开启通用查询日志(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_file
或
log_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(Linux) MySQL 9.6.0是面向Linux平台的2026年创新版本,核心架构迎来重大革新。其将外键约束与级联操作从InnoDB引擎层上移至SQL层,确保所有数据变更均被完整记录至Binlog,彻底解决了CDC(变更数据捕获)与主从复制中的数据不一致难题。此外,该版本引入container_aware启动选项以原生适配容器环境,并对审计日志进行了组件化重构,为追求极致数据一致性与云原生体验的开发者提供了全新选择。 下载 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

开启慢查询日志

slow_query_log = ON slow_query_log_file = /var/log/mysql/slow.log long_query_time = 1

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

相关文章