我在根提示下尝试了这个但没有帮助。
mysql> RESET QUERY CACHE;
IT显示
Query OK, 0 rows affected (0.00 sec)
但历史仍然存在。
如何清除或删除我输入的查询的历史记录。
答案 0 :(得分:33)
查询缓存和查询历史记录是不同的事情。
MySql将执行的查询与其结果存储在query cache中,因此它可以在请求相同查询时快速响应(缓存命中)。
运行RESET QUERY CACHE
或FLUSH TABLES
以清除查询缓存。
MySql在history file中存储从自己的shell执行的命令。它位于您的主目录(Unix)下:~/.mysql_history
。删除此文件以清除历史记录(来自shell):
rm -rf ~/.mysql_history
如果要完全禁用历史记录,请将历史记录文件创建为/dev/null
(来自shell)的符号链接:
ln -s /dev/null $HOME/.mysql_history
答案 1 :(得分:5)
Mysql运行自己的shell。您可以通过删除记录历史记录的文件来删除此历史记录,该文件存储在~/.mysql_history
答案 2 :(得分:0)
实际上,如果我们正在回答如何清除“历史记录”(而不是缓存),而我们正在谈论的是'nix平台...,则可能要删除另一个重要的历史记录文件。即/root/.mysql_history
。
访问MariaDB时(例如,如果您不知道,则为MySQL fork),通常以sudo
的形式启动它。在这种情况下,您的客户端输入历史记录将被写入/root...
而不是您的主目录。
如果出于安全目的要同时清除mysql客户端和bash终端上的所有最新输入,请尝试执行以下操作:
rm -rf ~/.mysql_history
sudo rm -rf /root/.mysql_history
history -cw
clear
我已经在运行MySQL或MariaDB的CentOS和Debian上成功使用了它。