如何在MySQL中通过shell命令创建数据库?

问题描述 投票:0回答:9

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

mysql database shell command-line command
9个回答
250
投票

你的意思是mysql环境?

create database testdb;

或直接从命令行:

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

184
投票
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

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


78
投票

如果您创建一个新数据库,最好创建仅具有该数据库权限的用户(如果出现任何问题,您不会泄露 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的密码


43
投票
mysqladmin -u$USER -p$PASSWORD create $DB_NAME

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


23
投票

使用

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

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


12
投票

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

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

11
投票

您可以在命令行上使用SQL

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

或者你可以使用

mysqladmin
:

mysqladmin create dbname

2
投票

使用基本用户连接到数据库:


  mysql -u base_user -pbase_user_pass
并执行 CREATE DATABASE、CREATE USER 和 GRANT PRIVILEGES 语句。

这里有方便的网络向导来帮助您处理报表 www.bugaco.com/helpers/create_database.html


0
投票

例如,登录后,您可以创建

apple
数据库,如下所示:

CREATE DATABASE apple;

并且,在登录之前,您可以创建

apple
数据库,如下所示。 *
CREATE ...
""
和不带
;
也可提供:

mysql -u root -p -e 'CREATE DATABASE apple;'

或者:

mysql -u root -p --execute='CREATE DATABASE apple;'
© www.soinside.com 2019 - 2024. All rights reserved.