SQL 命令显示查询历史记录

我想在我的 MYSQL 查询浏览器中显示我执行的 sql 命令历史记录。用于显示历史的 sql 语句是什么?

351726 次浏览

您可以查看查询缓存: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm,但是它可能不会提供对实际查询的访问权限,如果它确实有效,那么将是非常偶然的(含蓄的双关语)

但是 MySQL 查询浏览器很可能在 MySQL 引擎之外维护自己运行的查询列表。你必须在你的应用程序中做同样的事情。

编辑: 请看 Dan m 对此的评论: 如何显示在 MySQL 上执行的最后一个查询?看起来不错。

对于 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 在注释中提到的,除非您编辑配置文件(例如编辑 /etc/mysql/my.cnf,然后重新启动以应用更改) ,否则在下一个会话之前将忘记这些设置。

现在,如果你愿意,你可以 tail -f /var/log/mysql/mysql.log

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

试试看

 cat ~/.mysql_history

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

看看 ~/.myslgui/query-browser/history.xml 在这里你可以找到最后的查询与 mysql_query_browser (几天前)

(Linux) 打开 ctrl+alt+t航站楼 运行命令

 cat ~/.mysql_history

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

你会在那里找到的

~/.mysql_history

你可以像下面这样使它具有可读性(没有转义) :

sed "s/\\\040/ /g" < .mysql_history

你可以从 ~/看到历史。Mysql _ history.但是文件的内容是由 wcgrave 编码的。查看内容:

Shell > cat ~/. mysql _ history | python2.7-c“ import sys; print (”. join ([ l.decode (‘ unicode-escape’) for l in sys.stdin ])”

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

@ GoYun. 回答信息,但是用 python 3

cat ~/.mysql_history | python3 -c "import sys; print(''.join([l.encode('utf-8').decode('unicode-escape') for l in sys.stdin]))"