3 回答
TA贡献1828条经验 获得超3个赞
您可以非常轻松地将每个查询记录到日志文件中:
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';
否则性能将直线下降,您的磁盘将满!
TA贡献1827条经验 获得超4个赞
即使答案已经被接受,我还是想介绍一下可能是最简单的选择:
$ mysqladmin -u bob -p -i 1 processlist
这将每秒在屏幕上显示当前查询。
-u 您要执行命令的mysql用户
-p 提示您输入密码(因此您不必将其保存在文件中或将命令显示在命令历史记录中)
i 时间间隔(以秒为单位)。
使用该--verbose标志显示完整的进程列表,并显示每个进程的整个查询。(谢谢,nmat)
可能有一个缺点:如果快速查询在您设置的时间间隔之间运行,则可能不会显示。IE:我的间隔设置为一秒,如果有一个查询需要花费.02几秒钟来运行并且在间隔之间运行,您将看不到它。
当您想快速检查正在运行的查询而不必设置侦听器或其他任何内容时,最好使用此选项。
添加回答
举报