【发布时间】:2011-12-10 16:59:26
【问题描述】:
我想在我的 MYSQL 查询浏览器中显示我执行的 sql 命令历史记录。显示历史的sql语句是什么?
【问题讨论】:
-
听起来像是这个问题的转贴:stackoverflow.com/questions/650238/…
标签: mysql
我想在我的 MYSQL 查询浏览器中显示我执行的 sql 命令历史记录。显示历史的sql语句是什么?
【问题讨论】:
标签: mysql
@GoYun.Info 回答但使用 python 3
cat ~/.mysql_history | python3 -c "import sys; print(''.join([l.encode('utf-8').decode('unicode-escape') for l in sys.stdin]))"
【讨论】:
您可以从 ~/.mysql_history 中查看历史记录。但是文件的内容是由 wctomb 编码的。查看内容:
shell> cat ~/.mysql_history | python2.7 -c "import sys; print(''.join([l.decode('unicode-escape') for l in sys.stdin]))"
【讨论】:
对于 MySQL > 5.1.11 或 MariaDB
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';正如 jeffmjack 在 cmets 中提到的,除非您编辑配置文件(例如,编辑 /etc/mysql/my.cnf,然后重新启动以应用更改),否则这些设置将在下次会话之前忘记。
现在,如果您愿意,可以tail -f /var/log/mysql/mysql.log
【讨论】:
/path/to/your/logfile.log 被删除,日志记录将停止,直到您再次执行SET GLOBAL general_log_file = "/path/to/your/logfile.log";(或者如果您编辑了配置,可能会重新启动会话?)。
你会在那里找到它
~/.mysql_history
你会像这样使它可读(没有转义):
sed "s/\\\040/ /g" < .mysql_history
【讨论】:
看~/.myslgui/query-browser/history.xml
在这里您可以找到使用mysql_query_browser 进行的最后查询
(几天前)
【讨论】:
(Linux)
打开你的终端ctrl+alt+t
运行命令
cat ~/.mysql_history
你会得到所有以前的mysql查询历史享受:)
【讨论】:
试试
cat ~/.mysql_history
这将显示系统上运行的所有 mysql 命令
【讨论】:
exit MySQL 然后读取文件。
您可以查看查询缓存:http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm,但它可能无法让您访问实际查询,并且如果它确实有效,将会非常失败(微妙的双关语)
但 MySQL 查询浏览器很可能会在 MySQL 引擎之外维护自己运行的查询列表。您必须在您的应用中执行相同的操作。
编辑:请参阅 dan m 的评论导致此:How to show the last queries executed on MySQL? 看起来不错。
【讨论】: