是否有任何查询/方法显示在所有服务器上执行的最后查询?


当前回答

您可以在linux中查看以下内容

cd /root

ls -al

vi .mysql_history可能有帮助

其他回答

也许您可以通过查看查询日志来找到这一点。

如果开启了mysql binlog,可以通过执行命令查看用户执行的命令 以下命令在Linux控制台通过浏览到mysql binlog目录

mysqlbinlog binlog.000001 >  /tmp/statements.sql

启用

[mysqld]
log = /var/log/mysql/mysql.log

或者一般的日志会对mysql的性能有影响

你可以做流动的事情来监视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

1)如果通用mysql日志是启用的,那么我们可以根据我们在配置中提到的,检查日志文件或表中的查询。 使用以下命令检查启用了什么

mysql> show variables like 'general_log%';
mysql> show variables like 'log_output%';

如果我们需要在表中查询历史,那么

Execute SET GLOBAL log_output = 'TABLE';
Execute SET GLOBAL general_log = 'ON';

看一下mysql.general_log表

如果你想输出到一个文件:

SET GLOBAL log_output = "FILE"; which is set by default.
SET GLOBAL general_log_file = "/path/to/your/logfile.log";
SET GLOBAL general_log = 'ON';

2)我们还可以检查.mysql_history文件中的查询 猫~ / .mysql_history

对于那些拥有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