2017-05-12 46 views
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_somethingblabla等數據庫名稱...

然而,數據庫的當前名稱有很多條紋:rel-3-3-0.dev。我無法得到這個工作,我不斷收到命令的SQL錯誤。 (錯誤1064在MySQL)

我想在查詢條紋不是由命令行的MySQL變種接受,所以我加了反引號:

mysql -u "$dbuser" "-p$dbPassword" -e "CREATE DATABASE IF NOT EXISTS `$newDatabase`" 

但是,這似乎並沒有在任何工作? (MySQL中的錯誤1064)


有沒有辦法讓這工作?

回答

0

沒關係,好​​像這個工作:

mysql -u "$dbuser" "-p$dbPassword" -e "CREATE DATABASE IF NOT EXISTS \`$newDatabase\`"