我正在寻找类似 PostgreSQL 中的 createdb 的东西,或者任何其他允许我在 shell 命令的帮助下创建数据库的解决方案。有什么提示吗?
你的意思是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'"
地点:
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的密码
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'";
使用基本用户连接到数据库:
mysql -u base_user -pbase_user_pass
并执行 CREATE DATABASE、CREATE USER 和 GRANT PRIVILEGES 语句。
这里有方便的网络向导来帮助您处理报表 www.bugaco.com/helpers/create_database.html
例如,登录后,您可以创建
apple
数据库,如下所示:
CREATE DATABASE apple;
并且,在登录之前,您可以创建
apple
数据库,如下所示。 *CREATE ...
带 ""
和不带 ;
也可提供:
mysql -u root -p -e 'CREATE DATABASE apple;'
或者:
mysql -u root -p --execute='CREATE DATABASE apple;'