【发布时间】:2011-01-26 13:42:09
【问题描述】:
我正在寻找类似 PostgreSQL 中的 createdb 或任何其他允许我在 shell 命令的帮助下创建数据库的解决方案。有什么提示吗?
【问题讨论】:
标签: mysql shell command-line
我正在寻找类似 PostgreSQL 中的 createdb 或任何其他允许我在 shell 命令的帮助下创建数据库的解决方案。有什么提示吗?
【问题讨论】:
标签: mysql shell command-line
你是说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
如果你真的只想创建一个数据库。
【讨论】:
-u标志
如果您创建一个新数据库,最好创建仅对该数据库具有权限的用户(如果出现任何问题,您不会损害 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 的密码
【讨论】:
-p"root password here" 工作正常
mysqladmin -u$USER -p$PASSWORD create $DB_NAME
替换上面的变量,你就可以使用这个 oneliner。 $USER 是用户名,$PASSWORD 是密码,$DB_NAME 是数据库名称。
【讨论】:
使用
$ 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'";
【讨论】:
.,这将失败
你可以在命令行使用SQL:
echo 'CREATE DATABASE dbname;' | mysql <...>
或者你可以使用mysqladmin:
mysqladmin create dbname
【讨论】:
使用基本用户连接到数据库:
mysql -u base_user -pbase_user_pass
并执行 CREATE DATABASE、CREATE USER 和 GRANT PRIVILEGES 语句。
这是一个方便的网络向导,可帮助您进行陈述 www.bugaco.com/helpers/create_database.html
【讨论】: