我已经创建了一个像这样的shell脚本。但是在grant命令中遇到语法错误,我认为在密码区附近。如果有人可以,请帮助我。
ssh -t qbadmin@10.3.2.0 '
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}\";
mysql -u root -p -e \"\${sql3}\";
";
'
数据库已成功在远程计算机中创建,但grant命令返回错误..!我的猜测是错误可能是因为在grant命令中使用$“db_pass}之前和之后的字符。请帮我解决这个问题。
感谢。
答案 0 :(得分:0)
嵌套引用总是很棘手。为什么不将ssh
仅root
作为ssh -t root@10.3.2.0 '
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}"
mysql -p -e "${sql3}"
'
?
{{1}}