0

我创建了一个如下所示的 shell 脚本。目的是在远程机器上创建一个数据库,并为远程机器上的特定用户授予该数据库的所有权限。
shell脚本如下。

ssh root@10.3.2.0 'echo "数据库名称:";
读取 db_name;
回声“数据库用户:”;
读取 db_user;
echo "用户密码:";
读取密码;
主机=本地主机;
sql1="创建数据库 $db_name;";
sql2="grant all on ${db_name}.* to ${db_user}@${host} 由“${password}”标识;";
sql3="${sql1}${sql2}";
mysql -u root -p -e "${sql3}";
'

我得到的输出如下

root@10.3.2.0 的密码:
db 名称:
amblex
db 用户:
qbadmin
用户密码:
xxxx
输入密码:xxxx
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; 检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行
的“qburst”附近使用正确的语法

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

提前致谢。

4

1 回答 1

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.

于 2013-02-28T04:12:25.390 回答