shell scripting grant命令在mysql中不起作用

时间:2013-02-28 03:57:21

标签: shell

我已经创建了一个shell脚本,如下所示。目的是在远程计算机中创建一个数据库,并为远程计算机中的特定用户提供该数据库的所有权限。
shell脚本如下所示。

  

ssh root@10.3.2.0'echo“db name:”;
  读取db_name;
  echo“db user:”;
  读取db_user;
  echo“用户密码:”;
  读密码;
  主机=本地主机;
  sql1 =“create database $ db_name;”;
  sql2 =“将$ {db_name}。*上的所有内容授予$ {db_user} @ $ {host},标识为”$ {password}“;”;
  SQL3 = “$ {SQL1} $ {SQL2}”;
  mysql -u root -p -e“$ {sql3}”;
  “

Iam获得的输出如下:

  

root@10.3.2.0密码:
  数据库名称:
  amblex
  db用户:
  qbadmin
  用户密码:
  xxxx
  输入密码:xxxx
  第1行的错误1064(42000):SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在'qburst'附近的第1行使用正确的语法

我的剧本中可能有什么错误.PLease帮助我解决这个问题。

提前致谢。

1 个答案:

答案 0 :(得分:0)

而不是......

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

...试试这个......

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

您也可以考虑使用expect