为了账号安全,请及时绑定邮箱和手机立即绑定

如何启用MySQL查询日志?

如何启用MySQL查询日志?

缥缈止盈 2019-07-05 09:57:28
如何启用MySQL查询日志?如何启用MySQL函数来记录从客户端收到的每个SQL查询语句以及查询语句提交的时间?我可以在phpmyadmin或NaviCat中这样做吗?如何分析日志?
查看完整描述

3 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

看一下另一个相关问题的答案。它展示了如何在不重新启动的情况下启用、禁用和查看活动服务器上的日志。

在MySQL中记录所有查询


以下是一个总结:

如果不希望或不能重新启动MySQL服务器,则可以在正在运行的服务器上进行如下操作:

  • 创建日志表(请参见回答)

  • 启用数据库上的查询日志记录(请注意,字符串“表”应按字面顺序放置,而不应被任何表名所取代。谢谢尼古拉斯·皮克林)

SET global general_log = 1;SET global log_output = 'table';
  • 查看日志
select * from mysql.general_log;
  • 禁用数据库上的查询日志记录
SET global general_log = 0;


查看完整回答
反对 回复 2019-07-05
?
暮色呼如

TA贡献1853条经验 获得超9个赞

当我想快速优化不同的页面加载时,我使用此方法进行日志记录。这是个小提示.。

登录到表

SET global general_log = 1;SET global log_output = 'table';

然后,您可以从我的mysql.general_log表检索最近的查询。

然后我可以做一些类似的事情tail -f在mysql.log上,但是有了更多的改进.。

select * from mysql.general_log 
where  event_time  > (now() - INTERVAL 8 SECOND) and thread_id not in(9 , 628)and argument <> "SELECT 1" and argument <> ""
 and argument <> "SET NAMES 'UTF8'"  and argument <> "SHOW STATUS"  and command_type = "Query"  and argument <> "SET PROFILING=1"

这使得我很容易看到我可以尝试减少的查询。我只使用8秒间隔来获取在最后8秒内执行的查询。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 781 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信