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

我正在寻找类似于PostgreSQL中的CreateDB或任何其他解决方案,它们允许我在shell命令的帮助下创建数据库。有什么提示吗?

262158 次浏览

您可以在命令行中使用SQL

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

也可以使用mysqladmin

mysqladmin create dbname

你是说在MySQL环境中?

create database testdb;

或直接从命令行:

mysql -u root -e "create database testdb";
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

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

如果你创建一个新的数据库,最好创建一个只对这个数据库有权限的用户(如果出了什么问题,你不会泄露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'"

其中:
基本_用户是具有所有权限的用户(可能是根用户)
的名称 基本_用户_通过,它是基本_用户的密码(-P和基本_用户_PASS之间缺少空格很重要)
新建_数据库是新创建数据库
的名称 新建_数据库_用户是仅具有新_数据库
访问权限的新用户的名称 新建_数据库_用户_传递它是新建_数据库_用户的口令

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

替换上面的变量,你就可以使用这个OneLiner了。 $user是用户名,$password是密码,$db_名称是数据库的名称。

使用基本用户

连接到数据库: MySQL-U基础_用户-PBASE_用户_PASS 和执行CREATE DATABASE、CREATE USER和GRANT PRIVILEGES语句。

这里有一个方便的Web向导来帮助您处理语句。 www.bugaco.com/helper/创建_database.HTML

使用

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

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

第一个和第二个答案是好的,但如果有人正在寻找一个脚本,或者如果你想要动态的,即(数据库/用户名/密码在变量),然后在这里:

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