从shell脚本调用mysql之后,无法login到mysql

(我的第一个问题,所以如果我藐视任何公约,我就提前道歉!)

这是我第一次尝试创build一个shell脚本。 我试图创build新的数据库和用户和密码,通过在命令行中指定它们以及shell脚本。 我的root用户名和密码是在shell脚本中指定的。 这是我的shell脚本这样做:

#! / bin / sh的

#创build表格

masteruser = “根”

masterpassword = “dumbpassword”

#在命令行上需要一个参数

如果[$#-ne 3]; 然后

echo "Usage: createdb.sh dbname dbuser dbpassword"; exit 1; 

科幻

DBNAME = “$ 1”

DBUSER = “$ 2”

DBPASSWORD = “$ 3”

#echo $ dbname

#echo $ dbuser

#echo $ dbpassword

mysql -u“$ masteruser”-p“$ masterpassword”<< EOF

创build数据库$ 1; 授予$ 1. *到'$ 2',由'$ 3'标识;

刷新特权

EOF

我从命令行运行这样的:

./shellscriptname.sh newdbname newdbuser newdbpassword

运行这个脚本(创build数据库成功)多次后,当我尝试连接,发生这种情况:

#mysql –user root –password dumbpassword

input密码:错误1049(42000):未知数据库'dumbpassword'

我不知道为什么会这样。 (注意:刷新特权后没有分号)

为什么它不再工作? 我很好奇,因为我找不到我的脚本有任何问题。 这也不是工作:

mysql -u root -p dumbpassword

我更感兴趣的是找出为什么会发生这种情况,而不是解决问题。 所以我想我会问这位大师!

你应该使用以下

 mysql --user root --password=dumbpassword 

要么

 mysql -u root -pdumbpassword 

请注意,-p / – 密码和密码本身之间没有空格。

login到mysql的正确格式是:

 mysql -u username -p mydbname 

这使您可以login到数据库“mydbname”。 相反,你已经通过密码作为数据库名称,所以mySQL告诉你,它不能find数据库“dumbpassword”

尝试这个:

 mysql -u username -p 

这将允许您在提示input密码后login到mysql,然后您可以select数据库:

 use mydbname 

如果你在没有u / p开关的情况下运行mysql,它将从当前上下文中获取用户名和密码。