这应该是如此简单,但我无法让它发挥作用。 我正在使用bash(sh)在我们的服务器上自动执行发布过程:
#!/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中的ERROR 1064)
有什么方法可以让它发挥作用吗?
答案 0 :(得分:0)
没关系,似乎这样工作:
img