如何将密码传递给mysql命令行

当我尝试使用它时,我将mysql密码保存在文件foo.php上,例如P455w0rd:

$cat foo.php | grep '$dbpwd=' | cut -d '"' -f 2 | mysql -U root -p mydb -h friendserver
Enter password: (holds)

$echo P455w0rd | mysql -u root -p mydb -h friendserver
Enter password: (holds)

这两个选项仍然要求输入密码,从stdin发送密码的正确方法是什么?

解决方法:

你必须非常小心地将密码传递给命令行,因为如果你不小心,你最终会使用诸如ps之类的工具将其打开以进行嗅探.

最安全的方法是创建一个新的配置文件,并使用–defaults-file =或–defaults-extra-file =命令行选项将其传递给mysql.

两者之间的区别在于除了默认配置文件之外还读取后者,而使用前者,只使用作为参数传递的一个文件.

您的其他配置文件应包含类似于:

[client]
user=foo
password=P@55w0rd

确保您保护此文件.

然后运行:

mysql --defaults-extra-file=<path to the new config file> [all my other options]
上一篇:Airtest网易开源的一款UI自动化测试工具


下一篇:linux-如何使用/ dev / stdin和read.csv()从终端读取输入?