0
これは簡単なはずですが、動作させることができません。 私はbashの(SH)を使用して、当社のサーバー上の解放手順を自動化しています:MySQLからストライプをエスケープするコマンドを実行する
#!/bin/bash
oldDatabase=${1:-}
newDatabase=${2:-}
dbPassword=${3:-}
dbuser=${4:-}
if [ ! -z $oldDatabase ] ; then
mysql -u "$dbuser" "-p$dbPassword" -e "CREATE DATABASE IF NOT EXISTS $newDatabase"
mysqldump -u "$dbuser" "-p$dbPassword" $oldDatabase | mysql -u "$dbuser" "-p$dbPassword" $newDatabase;
else
echo "DB file: '$oldDatabase' not found/given!"
fi
これはtest_something
のようなデータベース名、blabla
などのための素晴らしい作品...
をただし、データベースの現在の名前をその中にたくさんの縞模様があります:rel-3-3-0.dev
。私はこれを動作させることができません、私はコマンドでSQLエラーを取得し続けます。 (MySQLでERROR 1064)
私は、クエリ内のストライプは、コマンドラインMySQLの変種で受け入れられないと思うので、私はバッククォートを追加しました:
mysql -u "$dbuser" "-p$dbPassword" -e "CREATE DATABASE IF NOT EXISTS `$newDatabase`"
しかし、これはどちらかで動作するようには思えないのですか? (MySQLのエラー1064)
これを行うにはどんな方法がありますか?