SQL命令显示查询历史记录


Answers:


161

尝试

 cat ~/.mysql_history

这将显示所有在系统上运行的mysql命令


2
并不是全部,对于某些包含“ password”之类的字符串的情况,抑制就会发生。
mckenzm 2015年

1
打开的MySQL CLI通常也不是最新的,因此您很可能必须先exitMySQL 才能读取文件。
乔尔·梅隆

1
这仅显示登录用户执行的命令
Christia

1
如何windowss做到这一点
ßiansor埃。Ålmerol'18

是否有其他命令被抑制或无序的可能性?并且,日志是否可以实时自我更新?
德鲁比奥(Drubio)

32

对于MySQL> 5.1.11或MariaDB

  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';

正如jeffmjack在评论中提到的那样,除非您编辑配置文件(例如edit /etc/mysql/my.cnf,然后重新启动以应用更改),否则这些设置将在下一个会话之前被忘记。

现在,如果您愿意的话 tail -f /var/log/mysql/mysql.log

此处更多信息:服务器系统变量


3
以上只是一些澄清:此处的copy-paste命令用于MySQL的单个会话,例如,您可以从交互式MySQL命令行输入这些命令。如果希望它们成为MySQL实例的永久功能,则需要将这些命令放在/etc/mysql/my.cnf中,然后重新启动MySQL服务。
jeffmjack

还要注意,如果/path/to/your/logfile.log删除日志记录,日志记录将停止,直到您SET GLOBAL general_log_file = "/path/to/your/logfile.log";再次执行(或者如果您编辑了配置?可能重新启动会话)。
Skippy le Grand Gourou

21

(Linux)打开终端ctrl+alt+t 运行命令

 cat ~/.mysql_history

您将获得以前所有的mysql查询历史记录:)



2

~/.myslgui/query-browser/history.xml 这里查看,您可以找到最近查询的mysql_query_browser 日期(几天前)


0

您可以从〜/ .mysql_history查看历史记录。但是,文件的内容由wctomb编码。要查看内容:

shell>猫〜/ .mysql_history | python2.7 -c“导入sys; print(”。join([sys.stdin中l的l.decode('unicode-escape')]))“

来源:从命令行检查MySQL查询历史记录


-1

您可以查看查询缓存:http : //www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm,但它可能无法使您访问实际查询,并且非常有用如果成功的话,会碰碰运气(意想不到的双关语)

但是MySQL Query Browser很可能会在MySQL引擎之外维护自己运行的查询列表。您将必须在您的应用程序中执行相同的操作。

编辑:参见dan m的评论导致的结果:如何显示在MySQL上执行的最后一个查询?看起来不错。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.