我使用带有 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
历史记录不会立即写入,而是在您退出客户端时写入。