【发布时间】:2011-06-01 11:16:37
【问题描述】:
我在 root 提示符下尝试过,但没有帮助。
mysql> RESET QUERY CACHE;
它显示
Query OK, 0 rows affected (0.00 sec)
但历史仍然存在。
如何清除或删除我输入的查询的历史记录。
【问题讨论】:
我在 root 提示符下尝试过,但没有帮助。
mysql> RESET QUERY CACHE;
它显示
Query OK, 0 rows affected (0.00 sec)
但历史仍然存在。
如何清除或删除我输入的查询的历史记录。
【问题讨论】:
我会小心使用带有递归选项的 rm,我一直被警告在使用 -r 之前要三思而后行
为什么不使用
rm ~/.mysql_history
【讨论】:
如果事实上,我们正在回答如何清除“历史记录”(而不是缓存),并且我们正在谈论一个 'nix 平台......还有另一个重要的历史记录文件可能会被删除。 IE。 /root/.mysql_history.
在访问 MariaDB(即,如果您不知道的情况下是 MySQL 分支)时,通常以sudo 启动它。在这种情况下,您的客户端输入历史记录将写入 /root... 而不是您的主目录。
如果您出于安全考虑要清除 mysql 客户端和 bash 终端上的所有最近输入,请尝试执行以下操作:
rm -rf ~/.mysql_history
sudo rm -rf /root/.mysql_history
history -cw
clear
我已经在运行 MySQL 或 MariaDB 的 CentOS 和 Debian 上成功使用了它。
【讨论】:
查询缓存和查询历史是不同的东西。
MySql 将执行的查询及其结果存储在query cache 中,因此它可以在请求相同查询时快速响应(缓存命中)。
运行RESET QUERY CACHE 或FLUSH TABLES 清除查询缓存。
MySql 将在自己的 shell 中执行的命令存储在 history file 中。它位于您的主目录 (Unix) 下:~/.mysql_history。删除此文件以清除迄今为止的历史记录(从 shell):
rm -rf ~/.mysql_history
如果您想完全禁用历史记录,请将历史记录文件创建为/dev/null 的符号链接(来自 shell):
ln -s /dev/null $HOME/.mysql_history
【讨论】:
Mysql 运行自己的 shell。您可以通过删除读取历史记录的文件来删除此历史记录,该文件存储在~/.mysql_history中
【讨论】: