【问题标题】:How to clear query cache in mysql?如何清除mysql中的查询缓存?
【发布时间】:2011-06-01 11:16:37
【问题描述】:

我在 root 提示符下尝试过,但没有帮助。

mysql> RESET QUERY CACHE;

它显示

Query OK, 0 rows affected (0.00 sec)

但历史仍然存在。

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

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    我会小心使用带有递归选项的 rm,我一直被警告在使用 -r 之前要三思而后行

    为什么不使用

    rm ~/.mysql_history
    

    【讨论】:

      【解决方案2】:

      如果事实上,我们正在回答如何清除“历史记录”(而不是缓存),并且我们正在谈论一个 '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 上成功使用了它。

      【讨论】:

        【解决方案3】:

        查询缓存查询历史是不同的东西。

        查询缓存

        MySql 将执行的查询及其结果存储在query cache 中,因此它可以在请求相同查询时快速响应(缓存命中)。 运行RESET QUERY CACHEFLUSH TABLES 清除查询缓存。

        命令历史文件

        MySql 将在自己的 shell 中执行的命令存储在 history file 中。它位于您的主目录 (Unix) 下:~/.mysql_history。删除此文件以清除迄今为止的历史记录(从 shell)

        rm -rf ~/.mysql_history
        

        如果您想完全禁用历史记录,请将历史记录文件创建为/dev/null 的符号链接(来自 shell)

        ln -s /dev/null $HOME/.mysql_history
        

        【讨论】:

          【解决方案4】:

          Mysql 运行自己的 shell。您可以通过删除读取历史记录的文件来删除此历史记录,该文件存储在~/.mysql_history

          【讨论】:

          猜你喜欢
          • 2017-02-02
          • 1970-01-01
          • 2023-03-04
          • 2010-12-24
          • 2015-09-12
          • 2013-03-11
          • 1970-01-01
          • 2013-07-24
          • 2021-03-07
          相关资源
          最近更新 更多