简体   繁体   English

将Bash脚本SSH导入MYSQL Server并创建带有破折号的数据库

[英]Bash Script SSH into MYSQL Server and create database with dash in it

I keep having trouble with this command: 我在使用此命令时遇到麻烦:

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

Even tho I escaped the backticks the database creation fails when a - is present in the database name. 即使在数据库名称中出现-时,我也逃不过了反引号。 Any ideas how to fix the syntax? 任何想法如何修复语法?

When running this locally everything works: 在本地运行时,一切正常:

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

Thanks 谢谢

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM