从MySQL执行命令

时间:2017-05-12 14:48:33

标签: mysql bash

这应该是如此简单,但我无法让它发挥作用。 我正在使用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_somethingblabla等数据库名称...

但是,数据库的当前名称中有很多条带: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)

有什么方法可以让它发挥作用吗?

1 个答案:

答案 0 :(得分:0)

没关系,似乎这样工作:

img
相关问题