bash shell mysql命令从命令行运行,但不在脚本内运行

时间:2019-08-28 22:04:40

标签: mysql bash

我正在尝试获取bash脚本以删除数据库。当我在shell命令行上执行命令时,它将起作用。从脚本执行后,我收到以下响应:

  

错误2005(HY000):未知的MySQL服务器主机'-u'(0)

这是命令:

 mysql -h *server* -u *user* -p*pasword* -e "DROP *databaseName*";

1 个答案:

答案 0 :(得分:0)

我建议您先检查是否设置了变量,然后再使用变量,如果没有设置,则最好使用一些默认值来避免此类错误,例如此处未设置host

mysql -h $([ ! -z "$host" ] || echo "localhost") -u $([ ! -z "$user" ] || echo "somedefault_user") -p$([ ! -z "$password" ] || echo "somedefault_pass")

您还可以在连接mysql服务器之前签入bash脚本。

if [ -z "$host" ]
then
      echo "\$host is empty, failed to connect mysql"
else
      echo "\$host is NOT empty"
      # delete DB here
fi