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

例如,我想要设置某种侦听器,然后请求一个web页面并查看引擎执行的所有查询,或者只是查看在生产服务器上运行的所有查询。我该怎么做呢?


当前回答

Gibbs MySQL Spyglass

AgilData最近推出了Gibbs MySQL可伸缩性顾问(一个免费的自助服务工具),它允许用户捕获实时查询流并上传到Gibbs。Spyglass(它是开源的)将监视MySQL服务器和客户端应用程序之间的交互。不需要重新配置或重新启动MySQL数据库服务器(无论是客户端还是应用程序)。

GitHub: AgilData / gibbs-mysql-spyglass

了解更多:包捕获MySQL与Rust

安装命令:

curl -s https://raw.githubusercontent.com/AgilData/gibbs-mysql-spyglass/master/install.sh | bash

其他回答

你可以在命令行中运行:

watch --interval=[your-interval-in-seconds] "mysqladmin -u root -p[your-root-pw] processlist | grep [your-db-name]"

将值[x]替换为您的值。

或者更好:

 mysqladmin -u root -p -i 1 processlist;

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

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';

执行查询(在任何db上)。查看/var/run/mysqld/mysqld.log

那就别忘了

mysql> SET GLOBAL general_log = 'OFF';

否则,性能将急剧下降,磁盘将被填满!

Gibbs MySQL Spyglass

AgilData最近推出了Gibbs MySQL可伸缩性顾问(一个免费的自助服务工具),它允许用户捕获实时查询流并上传到Gibbs。Spyglass(它是开源的)将监视MySQL服务器和客户端应用程序之间的交互。不需要重新配置或重新启动MySQL数据库服务器(无论是客户端还是应用程序)。

GitHub: AgilData / gibbs-mysql-spyglass

了解更多:包捕获MySQL与Rust

安装命令:

curl -s https://raw.githubusercontent.com/AgilData/gibbs-mysql-spyglass/master/install.sh | bash

除了前面描述如何启用一般日志记录的答案之外,在将任何SQL写入日志之前,我必须在我的香草MySql 5.6安装中修改一个额外的变量:

SET GLOBAL log_output = 'FILE';

默认设置为“NONE”。

我处于一种特殊的情况,我没有打开日志的权限,如果日志被打开,我也没有查看日志的权限。我不能添加触发器,但我确实有权限调用show processlist。所以,我尽了最大的努力,想出了这个:

创建一个名为"showsqlprocesslist"的bash脚本:

#!/bin/bash

while [ 1 -le 1 ]
do
         mysql --port=**** --protocol=tcp --password=**** --user=**** --host=**** -e "show processlist\G" | grep Info | grep -v processlist | grep -v "Info: NULL";
done

执行脚本:

./showsqlprocesslist > showsqlprocesslist.out &

尾部输出:

tail -f showsqlprocesslist.out

宾果得了。即使它没有节流,它只占用2-4%的CPU在我运行它的盒子上。我希望这能帮助到一些人。