0
我已经创建了一个像这样的shell脚本,但我得到授予命令的语法错误。请有人可以帮我吗?逃脱字符与双qoutes逃脱字符在shell脚本中的双qou
ssh -t [email protected] '
su root -c "
echo \"Give db name :\";
read db_name;
echo \"Give password :\";
read db_pass;
host=localhost;
sql1=\"create database \$db_name;\";
sql2=\"grant all on \${db_name}.* to \${db_name}@\${host} identified by \"\${db_pass}\";\";
sql3=\"\${sql1}\${sql2}\";
echo \"==============\";
mysql -u root -p -e \"\${sql3}\";
";
'
您将数据库对象的'GRANTS'赋予特定的'user',而不是数据库名!修改您的语句,像这样'sql2 = \“授予\\ {{db_name}。*全部\\ {用户名} @ \ $ {主机} \ \ {\ {db_pass} \”; \“;' – Incognito 2013-03-07 06:18:41
MYSQL会自动创建一个带有用户名的mysql用户,无论我们给出了什么。这里的db_name是可变的,它包含一个字符串值,并且mysql将创建一个与db_name相同的用户名的mysql用户。 – user103134 2013-03-07 06:26:38
这里我认为问题出现在grant命令中的\ $ db_pass之前和之后的字符 – user103134 2013-03-07 06:27:54