mysql - 如何从shell命令创建数据库?
我正在寻找像PostgreSQL中的createdb或任何其他允许我在shell命令的帮助下创建数据库的解决方案。 任何提示?
8个解决方案
183 votes
你的意思是在mysql环境下?
create database testdb;
或直接从命令行:
mysql -u root -e "create database testdb";
Felix Kling answered 2019-04-29T08:13:12Z
152 votes
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
如果你真的只想创建一个数据库。
Kris answered 2019-04-29T08:12:40Z
65 votes
如果您创建一个新数据库,最好只为该数据库创建具有权限的用户(如果出现任何问题,您将不会损害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是具有所有权限的用户的名称(可能是root用户)
base_user_pass它是base_user的密码(-p和base_user_pass之间缺少空格很重要)
new_db是新创建的数据库的名称
new_db_user是仅具有new_db访问权限的新用户的名称
new_db_user_pass它是new_db_user的密码
jmarceli answered 2019-04-29T08:14:18Z
33 votes
mysqladmin -u$USER -p$PASSWORD create $DB_NAME
替换上面的变量,你最好使用这个oneliner。$ USER是用户名,$ PASSWORD是密码,$ DB_NAME是数据库的名称。
karlingen answered 2019-04-29T08:14:42Z
18 votes
使用
$ mysqladmin -u -p create
系统将提示您输入密码。 还要确保您使用的mysql用户具有创建数据库的权限。
Willa answered 2019-04-29T08:15:09Z
9 votes
您可以在命令行上使用SQL:
echo 'CREATE DATABASE dbname;' | mysql <...>
或者你可以使用mysqladmin:
mysqladmin create dbname
Lukáš Lalinský answered 2019-04-29T08:15:41Z
8 votes
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'";
Salah-1 answered 2019-04-29T08:16:05Z
2 votes
使用基本用户连接到DB:mysql -u base_user -pbase_user_pass并执行CREATE DATABASE,CREATE USER和GRANT PRIVILEGES语句。
这是一个方便的Web向导,可以帮助您处理语句www.bugaco.com/helpers/create_database.html
CaptZ- answered 2019-04-29T08:16:37Z