当我以root登录到mysql时,我通常会设置mrootpass环境变量
export MROOTPASS=my-secret-password
然后做
mysql -u root -p$MROOTPASS
这消除了每次我将密码连接到MySQL作为root时重新输入密码的需求,但是显然这是不安全的,因为密码已将密码保存到BASH历史记录文件中。是否可以防止密码保存?
您只需使用
输入变量read -s -p "Enter password:" MROOTPASS
这样,如果不必将其保存到文件中,也不会出现在任何地方。相反,您只需要输入一次即可。-s选项告诉读取不要回荡键入字符,因此在输入时没有人可以查找。
编辑:接受这个答案后很长时间有人说,这并不能定义系统变量,而是壳变量。如果您需要在子壳中可见变量,则只需要在读取语句(bash(下方添加以下行来导出变量:
export MROOTPASS
read
内置命令的人页:
- bash
- 鱼
- zsh
- dash-具有
read
内置,但不支持此用例
$ read -rs PASSWORD
$ export PASSWORD