如何在mysql中清除查询缓存?

时间:2010-12-30 09:03:16

标签: mysql sql

我在根提示下尝试了这个但没有帮助。

mysql> RESET QUERY CACHE;

IT显示

Query OK, 0 rows affected (0.00 sec)

但历史仍然存在。

如何清除或删除我输入的查询的历史记录。

3 个答案:

答案 0 :(得分:33)

查询缓存查询历史记录是不同的事情。

查询缓存

MySql将执行的查询与其结果存储在query cache中,因此它可以在请求相同查询时快速响应(缓存命中)。 运行RESET QUERY CACHEFLUSH 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上成功使用了它。