我在根提示符下尝试了这个,但没有帮助。
mysql> RESET QUERY CACHE;
它展示了
Query OK, 0 rows affected (0.00 sec)
但是历史记录仍然存在。
我该如何清除或删除我输入的查询历史记录?
查询缓存和查询历史是两个不同的概念。
MySQL把执行过的查询语句和其结果存储在查询缓存中,这样当同样的查询被请求时能够快速响应(命中缓存)。运行RESET QUERY CACHE
或FLUSH TABLES
来清除查询缓存。
MySQL把在其自身shell中执行的命令存储在一个历史文件中。它位于你的主目录下(Unix):~/.mysql_history
。删除此文件可以清除到目前为止的历史记录(来自shell):
rm -rf ~/.mysql_history
如果你想完全禁用历史记录,可以通过创建一个指向 /dev/null
的符号链接来实现(从shell中):ln -s /dev/null $HOME/.mysql_history
Mysql有自己的shell。您可以通过删除历史记录所读取的文件来删除它,该文件存储在~/.mysql_history
中。
/root/.mysql_history
。sudo
方式启动。在这种情况下,您的客户端输入历史记录将被写入/root...
而不是您的主目录。rm -rf ~/.mysql_history
sudo rm -rf /root/.mysql_history
history -cw
clear
我在运行MySQL或MariaDB的CentOS和Debian上成功使用过这个。
在使用带有递归选项的rm命令时,我会非常谨慎,因为我一直被告诫在使用-r之前要三思而后行。
为什么不使用
rm ~/.mysql_history