如何通过自动化将密码安全地传递给 MySQL 客户端

How to pass the password securely to MySQL Client with automation

我正在寻找解决方案,以便在使用自动脚本解决方案(即 Bash 脚本)时将密码安全地传递给 *nix 平台上的 MySQL 客户端。

到目前为止,我不得不意识到 MySQL 完全忽略了来自 stdin 的密码输入(仍然要求在终端上输入密码,在自动化时崩溃)。

最糟糕的是,使用 ~/.mylogin.cnf 的解决方案对我也不起作用,似乎 MySQL 完全忽略了它。

我宁愿不使用命令行 -p 密码参数来防止描述的 "all-around" 安全问题。

--defaults-file 和 --defaults-extra-file 也没有给出解决方案,似乎密码是由客户端在 "all-cost".

提示的

因此,我 运行 无法解决该原始(乍一看)任务!

非常感谢任何帮助!

我会尽量简短地介绍我的发现:

首先,使用 mysql --defaults-extra-file="path/to/file" 的解决方案实际上对我有用 --default-file 选项 直到它作为第一个参数传递 (同样注意到比尔·卡尔文 (Bill Karwin) 在这里。

其次,~/mylogin.cnf 的使用也可以正常工作,直到 除了当前帐户 MySQL 客户端在 + 文件下 运行 之外,所有用户的文件访问都受到限制甚至当前用户 (chmod u-x) 也限制执行, 可能被 MySQL 视为威胁,因为 Linux 许多系统上的 GUI x 权限保护伞(执行权限已启用)对于用户、组和其他人,通过在 GUI 中为文件设置一个 V)。不过这个原因只是一个建议。