ZBLOG

mysql如何查看接收到的sql的记录

MySQL 查看接收到的 SQL 记录

在 MySQL 中,有几种方法可以查看服务器接收到的 SQL 查询记录:

1. 通用查询日志 (General Query Log)

这是最全面的方法,会记录所有收到的 SQL 语句。

-- 查看当前状态
SHOW VARIABLES LIKE 'general_log%';

-- 开启通用查询日志
SET GLOBAL general_log = 'ON';

-- 设置日志文件路径(可选)
SET GLOBAL general_log_file = '/var/log/mysql/mysql-general.log';

-- 关闭日志
SET GLOBAL general_log = 'OFF';

2. 慢查询日志 (Slow Query Log)

只记录执行时间超过指定阈值的查询:

-- 查看慢查询配置
SHOW VARIABLES LIKE 'slow_query%';
SHOW VARIABLES LIKE 'long_query_time';

-- 启用慢查询日志
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2; -- 单位:秒

-- 设置日志文件路径(可选)
SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';

3. Performance Schema

MySQL的Performance Schema可以提供详细的SQL执行信息:

-- 启用相关消费者和工具
UPDATE performance_schema.setup_consumers SET ENABLED = 'YES' WHERE NAME LIKE '%statements%';

-- 查看最近的SQL语句
SELECT * FROM performance_schema.events_statements_history_long;

4. Process List

实时查看当前正在执行的SQL:

SHOW FULL PROCESSLIST;

Linux系统下直接监控TCP流量

如果你需要临时监控而无法修改MySQL配置:

sudo tcpdump -i any -s0 -l port mysql -w /tmp/mysql.pcap

然后使用Wireshark分析捕获的文件。

⚠️注意事项

  1. 性能影响:开启完整查询日志会对性能产生显著影响,不建议在生产环境长期开启。
  2. 磁盘空间:确保有足够的磁盘空间存放日志文件。
  3. 安全性:日志可能包含敏感信息,需妥善保管访问权限。


    内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=23561

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?