是否有任何查询/方法显示在所有服务器上执行的最后查询?
当前回答
读完保罗的回答后,我继续在https://dev.mysql.com/doc/refman/5.7/en/query-log.html上挖掘更多信息
我发现了一个非常有用的代码。这里是上下文的摘要。
(注:以下代码不是我的)
这个脚本是一个保持表整洁的示例,这将帮助您减少表的大小。一天之后,将会有大约180k的日志查询。(在一个文件中,每天是30MB)
你需要添加一个额外的列(event_unix),然后你可以使用这个脚本来保持日志干净…它会将时间戳更新为unix时间戳,删除超过1天的日志,然后将event_time从event_unix更新为timestamp…听起来有点混乱,但效果很好。
新列的命令:
SET GLOBAL general_log = 'OFF';
RENAME TABLE general_log TO general_log_temp;
ALTER TABLE `general_log_temp`
ADD COLUMN `event_unix` int(10) NOT NULL AFTER `event_time`;
RENAME TABLE general_log_temp TO general_log;
SET GLOBAL general_log = 'ON';
清理脚本:
SET GLOBAL general_log = 'OFF';
RENAME TABLE general_log TO general_log_temp;
UPDATE general_log_temp SET event_unix = UNIX_TIMESTAMP(event_time);
DELETE FROM `general_log_temp` WHERE `event_unix` < UNIX_TIMESTAMP(NOW()) - 86400;
UPDATE general_log_temp SET event_time = FROM_UNIXTIME(event_unix);
RENAME TABLE general_log_temp TO general_log;
SET GLOBAL general_log = 'ON';
这要归功于Sebastian Kaiser(代码的原始作者)。
希望有人会像我一样觉得它有用。
其他回答
对于那些拥有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
如果你不想改变你的MySQL配置,你可以使用SQL分析器,如“Neor Profile SQL”http://www.profilesql.com。
您可以在linux中查看以下内容
cd /root
ls -al
vi .mysql_history可能有帮助
也许您可以通过查看查询日志来找到这一点。
SELECT * FROM mysql.general_log WHERE command_type ='Query' LIMIT total;
推荐文章
- 有nginx access_log和error_log日志的STDOUT和STDERR的主进程
- 如何停止mysqld
- 检查MySQL表是否存在而不使用“select from”语法?
- 从NOW() -1天选择记录
- 从表中选择1是什么意思?
- 在Python Django中运行单元测试时,如何禁用日志记录?
- 数据库性能调优有哪些资源?
- 如何更改表的默认排序规则?
- MySQL foreign_key_checks是否影响整个数据库?
- 哪里是logging.config.dictConfig的完整示例?
- 设置NOW()为datetime数据类型的默认值?
- 在MySQL中Datetime等于或大于今天
- 删除MySQL中的主键
- 我如何在MySQL中添加更多的成员到我的enum类型列?
- 相当于varchar(max)在MySQL?