由于语法错误,grant命令在shell脚本中不起作用

时间:2013-03-06 11:56:34

标签: shell

我遇到了shell脚本问题。

由于某种原因,我在双引号\之前使用了(")字符,如我的shell脚本的以下行所示。

  

sql2 = \“将所有on $ $ {db_name}。*授予\ $ {db_user} @ \ $ {host},由\ $ {dbpass}; \”;

标识

但是在MySQL“grant”命令语法中,我需要在\${dbpass}之前和之后放置双引号,这是我在上面给出的shell脚本行的一部分。当我这样说时,{{ 1}},它在执行期间抛出语法错误。我应该解决这个问题。

这是一次更新 这是我想要运行的shell脚本。

  

ssh -t qbadmin@10.3.2.0'
  su root -c“
    echo \“给出数据库名称:\”;
    读取db_name;
    echo \“给密码:\”;
    读db_pass;
    主机=本地主机;
    sql1 = \“create database \ $ db_name; \”;
    sql2 = \“将所有on $ $ {db_name}。*授予\ $ {db_name} @ \ $ {host}由\”\ $ {db_pass} \“; \”; <     SQL3 = \ “\ $ {SQL1} \ $ {SQL2} \”;
    echo \“============== \”;
    mysql -u root -p -e \“\ $ {sql3} \”;
  “
  “

请参阅此脚本,并请告知我需要对此进行必要的更改。

感谢。

1 个答案:

答案 0 :(得分:0)

试试这个

db_name="yourdbname"
db_user="yourdbuser"
host="yourhost"
dbpass="yourdbpass"

sql2="grant all on ${db_name}.* to ${db_user}@${host} identified by ${dbpass};"

echo $sql2 | mysql -u yourusername -pmysql