使用变量创建MySQL数据库

时间:2011-09-19 08:20:35

标签: mysql database variables

我想按照

的方式做点什么

CREATE DATABASE IF NOT EXISTS @database_name;

从阅读the mysql syntax for prepared statements看来,它们似乎无法用于创建数据库,否则这样的事情就可以了。

SET @s = CONCAT('CREATE DATABASE IF NOT EXISTS ',@database_name);
PREPARE stmt FROM @s;
EXECUTE stmt;

理想情况下,我希望它是来自shell脚本的I can run from a .sql file

#!/bin/bash

MYSQL="mysql"
`${MYSQL} --version >& /dev/null`
if [ $? != 0 ]; then
    MYSQL="mysql5"
    `${MYSQL} --version > /dev/null`
    if [ $? != 0 ]; then
        echo "Can't find mysql binary?"
        exit 1
    fi
fi

 ${MYSQL} -u root --password=###### -e "set @database_name:='ben_search';source CreateSkeleton.sql;"

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以从您的SQL文件中取出CREATE DATABASE语句并从shell脚本中发出它:

#!/bin/bash
dbname='my_db'
mysql -e "CREATE DATABASE $dbname"
mysql $dbname < /path/to/file/CreateSkeleton.sql