MySQL cli 不记得某些命令的历史记录

MySQL cli 不记得某些命令的历史记录

我使用带有 mysql 数据库的 Linux 操作系统。

mysql CLI 不记录某些命令~/.mysql_history
例如,无法记录create user

如何强制 cli 将所有命令存储在 mysql_history 中?
如何解决此问题?

答案1

这种行为是设计使然,据我所知,你无法覆盖它。
默认情况下,所有交互式语句都会被记录,包括CREATE USER语句,除了当它们包含密码信息时。

虽然你可以添加额外的条件来阻止记录某些额外的语句(设置选项--histignore或 MYSQL_HISTIGNORE 环境变量)或完全停止记录,例如--batch切换,据我所知,记录密码是不可能的。

https://dev.mysql.com/doc/refman/5.7/en/mysql-logging.html

mysql忽略与“忽略”列表中的任何模式匹配的语句,以进行日志记录。默认情况下,模式列表为"*IDENTIFIED*:*PASSWORD*",以忽略引用密码的语句。

答案2

尝试:

  • 明确设置 MYSQL_HISTFILE 环境变量

  • 触摸.mysql_history

  • chmod 600 .mysql_history

历史记录不会立即写入,而是在您退出客户端时写入。

相关内容