是否有任何查询/方法显示在所有服务器上执行的最后查询?
当前回答
如果你不想改变你的MySQL配置,你可以使用SQL分析器,如“Neor Profile SQL”http://www.profilesql.com。
其他回答
也许您可以通过查看查询日志来找到这一点。
您可以为这种诊断启用一般查询日志。但是,通常不会在生产服务器上记录所有SELECT查询,这是性能杀手。
编辑你的MySQL配置,例如/etc/mysql/my.cnf -查找或添加如下一行
[mysqld]
log = /var/log/mysql/mysql.log
重新启动mysql以获取该更改,现在就可以了
tail -f /var/log/mysql/mysql.log
嘿,马上,你就可以看到输入的查询了。
SELECT * FROM mysql.general_log WHERE command_type ='Query' LIMIT total;
你可以做流动的事情来监视mysql查询日志。
打开mysql配置文件my.cnf
sudo nano /etc/mysql/my.cnf
搜索[mysqld]标题下的以下行,并取消这些行注释以启用日志
general_log_file = /var/log/mysql/mysql.log
general_log = 1
重新启动mysql服务器以反映更改
sudo service mysql start
在终端中使用以下命令监视mysql服务器日志
tail -f /var/log/mysql/mysql.log
对于那些拥有MySQL >= 5.1.12的人,你可以在运行时全局控制这个选项:
执行SET GLOBAL log_output = 'TABLE'; 执行SET GLOBAL general_log = 'ON'; 看一下mysql.general_log表
如果你喜欢输出到一个文件而不是一个表:
SET GLOBAL log_output = "FILE";默认值。 SET GLOBAL general_log_file = "/path/to/your/logfile.log"; SET GLOBAL general_log = 'ON';
与编辑.cnf文件相比,我更喜欢这种方法,因为:
您没有编辑my.cnf文件,也没有可能永久地打开日志记录 您不必在文件系统中寻找查询日志——或者更糟的是,不必因为需要完美的目的地而分心。/var/log /var/data/log /opt /home/ mysql_救世主/var 您不必重新启动服务器并中断到它的任何当前连接。 重新启动服务器会让您回到开始时的位置(默认情况下日志仍然关闭)
有关更多信息,请参见 MySQL 5.1参考手册-服务器系统变量- general_log . zip
推荐文章
- 警告用户/local/mysql/data目录不属于mysql用户
- 添加一个复合主键
- 如何在SQL Server Management Studio中查看查询历史
- 无法添加或更新子行:外键约束失败
- 如何从本地机器mysqldump远程数据库
- 如何正确地创建复合主键- MYSQL
- Python中带有回溯的日志异常
- 仅在Datetime列上按日期分组
- 在MySQL数据库中存储货币值的最佳数据类型
- 如何自定义'显示进程列表'在mysql?
- MySQL删除一些外键
- 用MySQL LEFT JOIN删除行
- MySQL - length() vs char_length()
- 使用PDO进行行计数
- 在Mac上安装MySQL后,使用ALTER USER语句重置MySQL root密码