如何显示在MySQL上执行的最后查询?

4 浏览
0 Comments

如何显示在MySQL上执行的最后查询?

有没有查询/方法可以显示在所有服务器上执行的最后查询?

admin 更改状态以发布 2023年5月20日
0
0 Comments

你可以启用通用查询日志来进行这种诊断。通常情况下,在生产服务器上不会记录所有的SELECT查询,因为它会影响性能。

编辑你的MySQL配置文件,例如/etc/mysql/my.cnf,在其中查找或添加以下行

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

重新启动mysql以应用该更改,现在你可以

tail -f /var/log/mysql/mysql.log

嘿,预备,你可以观察查询随着进来的。

0
0 Comments

对于那些拥有 MySQL>=5.1.12 的幸运儿,你可以在运行时全局控制这个选项:

  1. 执行 SET GLOBAL log_output = 'TABLE';
  2. 执行 SET GLOBAL general_log = 'ON';
  3. 查看表格 mysql.general_log

如果你喜欢将它输出到文件而不是表格:

  1. SET GLOBAL log_output = "FILE"; 默认值
  2. SET GLOBAL general_log_file = "/path/to/your/logfile.log";
  3. SET GLOBAL general_log = 'ON';

我更喜欢这种方法而不是编辑.cnf文件,因为:

  1. 你不会编辑my.cnf文件并潜在地永久开启日志
  2. 你不需要在文件系统中寻找查询日志 - 或者更糟糕的是,分心于需要完美的目的地。/var/log /var/data/log /opt /home/mysql_savior/var
  3. 你不需要重新启动服务器并中断任何当前与之连接的连接。
  4. 重新启动服务器将使你回到初始状态(日志默认关闭)

欲了解更多信息,请参见
MySQL 5.1 参考手册 - 服务器系统变量 - general_log

0