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

kos*_*kot 165 mysql shell command-line

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

Fel*_*ing 204

你的意思是在mysql环境下?

create database testdb;
Run Code Online (Sandbox Code Playgroud)

或直接从命令行:

mysql -u root -e "create database testdb"; 
Run Code Online (Sandbox Code Playgroud)

  • mysql -u root -e"create database testdb"; 多数民众赞成我在寻找:)谢谢 (10认同)
  • 如果您有密码,只需添加-p.按Enter键后,系统将询问您的密码.以下是使用我的用户root的示例(如果您拥有anoter用户名则更改它),并且它还使用名称"oc_local"作为数据库(如果您希望以不同方式调用数据库,请更改它) - ----> mysql -u root -p -e"create database oc_local"; (3认同)

Kri*_*ris 167

cat filename.sql | mysql -u username -p # type mysql password when asked for it
Run Code Online (Sandbox Code Playgroud)

其中filename.sql包含所有用于创建数据库的sql.要么...

echo "create database `database-name`" | mysql -u username -p
Run Code Online (Sandbox Code Playgroud)

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

  • 我在第27行遇到此错误ERROR 1046(3D000):当我运行echo"create database databasename"时没有选择数据库 mysql -u -u username -p命令 (2认同)
  • 这是因为有两个`-u`标志 (2认同)

jma*_*eli 69

如果您创建一个新数据库,最好只为该数据库创建具有权限的用户(如果出现任何问题,您将不会损害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'"
Run Code Online (Sandbox Code Playgroud)

其中:
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的密码

  • 大量的。刚刚将这一伟大的一行添加到 dashdocs 片段中。如果有人拥有带空格的 root 密码: `-p"root password here"` 工作正常 (2认同)

kar*_*gen 36

mysqladmin -u$USER -p$PASSWORD create $DB_NAME
Run Code Online (Sandbox Code Playgroud)

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


Wil*_*lla 18

使用

$ mysqladmin -u <db_user_name> -p create <db_name>
Run Code Online (Sandbox Code Playgroud)

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


Sal*_*h-1 11

ist和第二个答案都很好,但是如果有人想要一个脚本或者如果你想要动态ie(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'";
Run Code Online (Sandbox Code Playgroud)


Luk*_*ský 10

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

echo 'CREATE DATABASE dbname;' | mysql <...>
Run Code Online (Sandbox Code Playgroud)

或者您可以使用mysqladmin:

mysqladmin create dbname
Run Code Online (Sandbox Code Playgroud)