禁用 MySQL 历史记录 – 清除 ~/.mysql_history 和 MYSQL_HISTFILE

举报
Tiamo_T 发表于 2021/11/25 14:41:07 2021/11/25
【摘要】 问题:如何禁用 mysql 历史记录?我不希望 mysql 记住我从 mysql> 提示符键入的先前命令。这对我来说很重要,因为当我键入一些包含密码的 sql 命令时,我看到存储在 ~/.mysql_history 中的明文密码,这是我不想发生的。 答: Bash 历史功能将在命令行中键入的 Unix 命令存储在 ~/.bash_history 文件中。与 bash shell 类似,mysql

问题:如何禁用 mysql 历史记录?我不希望 mysql 记住我从 mysql> 提示符键入的先前命令。这对我来说很重要,因为当我键入一些包含密码的 sql 命令时,我看到存储在 ~/.mysql_history 中的明文密码,这是我不想发生的。

答: Bash 历史功能将在命令行中键入的 Unix 命令存储在 ~/.bash_history 文件中。与 bash shell 类似,mysql 将在 mysql> 提示符中键入的命令存储在~/.mysql_history文件中。

在本文中,让我们回顾一下如何禁用 mysql 历史记录。

1.从mysql>提示符执行一些sql命令

从 unix 命令行连接到 mysql 并执行如下所示的几个 sql 命令。

$ mysql -u root -pyour-password

mysql> show databases;
mysql> use information_schema;
mysql> show tables;
mysql> select table_name, table_rows from tables;

注意:现在,如果您按向上箭头,您可以看到您之前在 mysql 提示符下输入的所有命令。

2. ~/.mysql_history 文件存储了mysql的历史

从 mysql 命令提示符退出并查看 ~/.mysql_history 文件,该文件将包含您从 mysql 命令提示符执行的所有 sql 命令。


$ cat ~/.mysql_history
select * from versions;
show databases;
use information_schema;
show tables;
select table_name, table_rows from tables;

3. 使用 MYSQL_HISTFILE 环境变量禁用 mysql 历史记录

首先,删除 ~/.mysql_history 文件

$ rm ~/.mysql_history

接下来,将MYSQL_HISTFILE 环境变量设置为 /dev/null

$ export MYSQL_HISTFILE=/dev/null

$ set | grep MYSQ
MYSQL_HISTFILE=/dev/null

现在,登录到 mysql 并执行一些 sql 命令。你会注意到 ~/.mysql_history 文件不再被创建。

$ mysql -u root -pyour-password
mysql> show databases;
mysql> use information_schema;
mysql> show tables;
mysql> select table_name, table_rows from tables;

$ cat ~/.mysql_history
cat: /home/ramesh/.mysql_history: No such file or directory

4. 通过将 .mysql_history 指向 /dev/null 来禁用 mysql 历史记录

首先,删除 ~/.mysql_history 文件

$ rm ~/.mysql_history

接下来,创建一个 ~/.mysql_history 指向 /dev/null 的符号链接,如下所示。

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

$ ls -l .mysql_history
lrwxrwxrwx 1 ramesh admin 9 Dec 26 19:18 /home/ramesh/.mysql_history -> /dev/null

现在,登录到 mysql 并执行一些 sql 命令。您会注意到 ~/.mysql_history 文件是空的,并且不存储任何以前键入的命令。

$ mysql -u root -pyour-password
mysql> show databases;
mysql> use information_schema;
mysql> show tables;
mysql> select table_name, table_rows from tables;

$ cat ~/.mysql_history
$
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。