如何从shell命令创建数据库?

时间:2010-03-11 20:24:12

标签: mysql shell command-line

我正在寻找像PostgreSQL中的createdb或任何其他允许我在shell命令的帮助下创建数据库的解决方案。任何提示?

8 个答案:

答案 0 :(得分:195)

你的意思是在mysql环境下?

create database testdb;

或直接从命令行:

mysql -u root -e "create database testdb"; 

答案 1 :(得分:161)

cat filename.sql | mysql -u username -p # type mysql password when asked for it

其中filename.sql包含创建数据库的所有sql。还是......

echo "create database `database-name`" | mysql -u username -p

如果你真的只想创建一个数据库。

答案 2 :(得分:67)

如果您创建一个新数据库,最好只为该数据库创建具有权限的用户(如果出现任何问题,您将不会损害root用户登录名和密码)。所以一起看起来像这样:

mysql -u base_user -pbase_user_pass -e "create database new_db; GRANT ALL PRIVILEGES ON new_db.* TO new_db_user@localhost IDENTIFIED BY 'new_db_user_pass'"

其中:
base_user 是具有所有权限(可能是根)的用户的名称 base_user_pass 这是base_user的密码(-p和base_user_pass之间缺少空间很重要)
new_db 是新创建的数据库的名称
new_db_user 是新用户的名称,只能访问new_db
new_db_user_pass 这是new_db_user的密码

答案 3 :(得分:35)

mysqladmin -u$USER -p$PASSWORD create $DB_NAME

替换上面的变量,你最好使用这个oneliner。 $ USER是用户名,$ PASSWORD是密码,$ DB_NAME是数据库的名称。

答案 4 :(得分:18)

使用

$ mysqladmin -u <db_user_name> -p create <db_name>

系统将提示您输入密码。还要确保您使用的mysql用户具有创建数据库的权限。

答案 5 :(得分:11)

ist和第二个答案都很好,但是如果有人想要一个脚本或者你想要动态,(db / username / password in variable)那么这里:

#!/bin/bash



DB="mydb"
USER="user1"
PASS="pass_bla"

mysql -uroot -prootpassword -e "CREATE DATABASE $DB CHARACTER SET utf8 COLLATE utf8_general_ci";
mysql -uroot -prootpassword -e "CREATE USER $USER@'127.0.0.1' IDENTIFIED BY '$PASS'";
mysql -uroot -prootpassword -e "GRANT SELECT, INSERT, UPDATE ON $DB.* TO '$USER'@'127.0.0.1'";

答案 6 :(得分:10)

您可以在命令行中使用SQL

echo 'CREATE DATABASE dbname;' | mysql <...>

或者您可以使用mysqladmin

mysqladmin create dbname

答案 7 :(得分:2)

使用基本用户连接到数据库: mysql -u base_user -pbase_user_pass 并执行CREATE DATABASE,CREATE USER和GRANT PRIVILEGES语句。

这是一个方便的Web向导,可以帮助您处理语句 www.bugaco.com/helpers/create_database.html