是否有任何查询/方式显示在所有服务器上执行的最后查询?
对于那些有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_savior/var
您不必重新启动服务器并中断与其的任何当前连接.
重新启动服务器会使您离开您的位置(默认情况下,日志仍处于关闭状态)
有关更多信息,请参阅 MySQL 5.1参考手册 - 服务器系统变量 - general_log
您可以为该类诊断启用常规查询日志.通常,您不会在生产服务器上记录所有SELECT查询,但这是性能杀手.
编辑你的MySQL配置,例如/etc/mysql/my.cnf - 查找或添加这样的行
[mysqld] log = /var/log/mysql/mysql.log
现在就可以重新启动mysql以获取更改
tail -f /var/log/mysql/mysql.log
嘿presto,你可以看到他们进来的问题.
您可以执行流动的操作来监视mysql查询日志.
打开mys.cn配置文件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
SELECT * FROM mysql.general_log WHERE command_type ='Query' LIMIT total;
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文件cat~/.mysql_history中的查询