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

我正在寻找像psql中的createdb或任何其他解决scheme,这将允许我在shell命令的帮助下创build数据库。 任何提示?

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

其中filename.sql保存所有的sql来创build你的数据库。 要么…

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

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

你的意思,而MySQL的环境?

 create database testdb; 

或直接从命令行:

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

如果你创build一个新的数据库,那么创build只有这个数据库权限的用户才是好事情(如果出现任何问题,你不会损害root用户的login名和密码)。 所以,一切都将如下所示:

 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是拥有所有权限的用户名(可能是root)
base_user_pass它是base_user的密码(-p和base_user_pass之间缺less空格很重要)
new_db是新build数据库的名称
new_db_user是新用户的名称,只能访问new_db
new_db_user_pass它是new_db_user的密码

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

replace上面的variables,你很好的去与这个oneliner。 $ USER是用户名,$ PASSWORD是密码,$ DB_NAME是数据库的名称。

使用

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

您将被提示input密码。 还要确保你使用的mysql用户有权限创build数据库。

您可以在命令行上使用SQL :

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

或者你可以使用mysqladmin

 mysqladmin create dbname 

ist和第二个答案是好的,但如果有人正在寻找一个脚本或如果你想dynamic即(DB /用户名/密码在variables),那么在这里:

 #!/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'"; 

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

这里有方便的网页向导,可以帮助您阅读www.bugaco.com/helpers/create_database.html