0

以下に示すシェルスクリプトを作成しました。目的は、リモートマシンにデータベースを作成し、リモートマシンの特定のユーザーにそのデータベースに対するすべての権限を与えることです。
シェルスクリプトは以下の通りです。

ssh root@10.3.2.0 'echo "データベース名:";
db_name を読み取ります。
echo "db ユーザー :";
db_user を読み取ります。
echo "ユーザーパスワード:";
パスワードを読む;
ホスト=localhost;
sql1="データベース $db_name を作成;";
sql2="${db_name}.* のすべてを "${password}" で識別される ${db_user}@${host} に付与;";
sql3="${sql1}${sql2}";
mysql -u root -p -e "${sql3}";
'

そして、私が得ている出力は次のとおりです

root@10.3.2.0's password:
db name :
amblex
db user :
qbadmin
user password:
xxxx
Enter password: xxxx
ERROR 1064 (42000) at line 1: SQL 構文にエラーがあります。1行
目の「qburst」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

私のスクリプトの間違いの可能性があります.これを解決するのを手伝ってください.

前もって感謝します。

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 に答える