当我以 root 身份登录 MySQL 时,我通常设置 MROOTPASS 环境变量
export MROOTPASS=my-secret-password
Run Code Online (Sandbox Code Playgroud)
然后做
mysql -u root -p$MROOTPASS
Run Code Online (Sandbox Code Playgroud)
这消除了每次我以 root 身份连接到 MySQL 时重新输入密码的需要,但显然它是不安全的,因为密码已保存到 bash 历史文件中。是否可以防止密码被保存?
jot*_*tbe 10
您可以使用输入变量
read -s -p "Enter password:" MROOTPASS
Run Code Online (Sandbox Code Playgroud)
这样它也不会出现在任何地方而不必将其保存在文件中。相反,您只需输入一次。-s 选项告诉 read 不要回显输入的字符,因此在您输入时没有人可以查找它。
编辑:在这个答案被接受很久之后,有人说,这没有定义系统变量,而是定义了 shell 变量。如果您需要您的变量在子 shell 中可见,您只需要通过在 read 语句 (bash) 下方添加以下行来重新导出变量:
export MROOTPASS
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3207 次 |
| 最近记录: |