如何在我的Linux服务器上跟踪MySQL查询?

  • 回答 (2)
  • 关注 (0)
  • 查看 (81)

如何在我的Linux服务器上跟踪MySQL查询?

例如,我喜欢设置某种监听器,然后请求网页并查看引擎执行的所有查询,或者查看正在生产服务器上运行的所有查询。我怎样才能做到这一点?

123456a134123456a134提问于
akjok54stay hungry stay foolish回答于

你可以很容易地将每个查询记录到日志文件中:

mysql> SHOW VARIABLES LIKE "general_log%";
+------------------+----------------------------+
| Variable_name    | Value                      |
+------------------+----------------------------+
| general_log      | OFF                        |
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+
mysql> SET GLOBAL general_log = 'ON';

做你的查询(在任何分贝)。Grep或以其他方式检查/var/run/mysqld/mysqld.log

那么别忘了

mysql> SET GLOBAL general_log = 'OFF';

或者性能会下降,你的磁盘将会填满!

心愿回答于

你可以运行MySQL命令SHOW FULL PROCESSLIST;来查看在任何给定时间正在处理的查询,但可能无法达到您希望的效果。

获取历史记录而不必使用服务器修改每个应用程序的最佳方法可能是通过触发器。你可以设置触发器,以便每个查询运行结果将查询插入某种历史表,然后创建一个单独的页面来访问此信息。

请注意,这可能会大大减慢服务器上的所有内容,但INSERT在每个查询之上添加额外的内容。

可能回答问题的人

  • 腾讯云计算产品团队

    腾讯云 · 产品团队 (已认证)

    136 粉丝0 提问0 回答
  • CVM 产品团队

    26 粉丝0 提问7 回答
  • 小仙女和科学家

    9 粉丝0 提问0 回答
  • 怕冷的阳阳

    腾讯云 · 高级工程师 (已认证)

    19 粉丝1 提问0 回答
  • DRRR

    腾讯云 · 产品经理 (已认证)

    6 粉丝0 提问4 回答
  • candyxiao

    腾讯 · 高级产品经理 (已认证)

    11 粉丝0 提问7 回答

扫码关注云+社区

领取腾讯云代金券