我在使用此命令时遇到麻烦:

ssh -t $SSSSHUSER@$SSSSH "echo \"CREATE DATABASE \`$NEWDB\`; GRANT ALL ON \`$NEWDB\`.* TO '$SSMYSQLUSER'@'$SSMYSQLSERVER';\" | /usr/bin/mysql -u$SSMYSQLUSER -p$SSMYSQLPWD ;"


即使在数据库名称中出现-时,我也逃脱了反引号,但数据库创建失败。任何想法如何修复语法?

在本地运行时,一切正常:

echo "CREATE DATABASE \`$NEWDB\`; GRANT ALL ON \`$NEWDB\`.* TO '$MYSQLUSER'@'localhost';" | /Applications/MAMP/Library/bin/mysql -u"$MYSQLUSER" -p"$MYSQLPWD"


谢谢

最佳答案

使用set -x进行调试后,此代码可以正常工作:

ssh -t $SSSSHUSER@$SSSSH "echo 'CREATE DATABASE \`$NEWDB\`; GRANT ALL ON \`$NEWDB\`.* TO $SSMYSQLUSER@$SSMYSQLSERVER;' | /usr/bin/mysql -u$SSMYSQLUSER -p$SSMYSQLPWD ; "

关于mysql - 将Bash脚本SSH导入MYSQL Server并创建带有破折号的数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36613151/

10-13 09:41