mysql要求密码两次,即使已经提供了密码

时间:2014-05-20 17:27:00

标签: mysql bash

我有这个脚本:

read PASS
mysql -u root -p "$PASS" < myfile.sql

如果我已经提供了密码,为什么我第二次提示输入mysql的密码?

1 个答案:

答案 0 :(得分:1)

语法是:

mysql -u root -p"$PASS" < myfile.sql

-p或:

之后没有空格
mysql -u root --password="$PASS" < myfile.sql

第一种语法的解释是在Documentation中。对于大多数选项,选项与其值之间的空格是可选的。但它说:

  

此规则的一个例外是指定MySQL密码的选项。此选项可以长形式提供--password = pass_val或--password。在后一种情况下(没有给出密码值),程序会提示您输入密码。密码选项也可以简短形式给出为-ppass_val或-p。但是,对于简短形式,如果给出密码值,则必须遵循选项字母而没有中间空格。原因是如果选项字母后面有空格,程序无法判断后面的参数是密码值还是其他类型的参数。