我正在寻找像PostgreSQL中的createdb或任何其他允许我在shell命令的帮助下创建数据库的解决方案。任何提示?
答案 0 :(得分:195)
你的意思是在mysql环境下?
create database testdb;
或直接从命令行:
mysql -u root -e "create database testdb";
答案 1 :(得分:161)
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
如果你真的只想创建一个数据库。
答案 2 :(得分:67)
如果您创建一个新数据库,最好只为该数据库创建具有权限的用户(如果出现任何问题,您将不会损害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 是具有所有权限(可能是根)的用户的名称
base_user_pass 这是base_user的密码(-p和base_user_pass之间缺少空间很重要)
new_db 是新创建的数据库的名称
new_db_user 是新用户的名称,只能访问new_db
new_db_user_pass 这是new_db_user的密码
答案 3 :(得分:35)
mysqladmin -u$USER -p$PASSWORD create $DB_NAME
替换上面的变量,你最好使用这个oneliner。 $ USER是用户名,$ PASSWORD是密码,$ DB_NAME是数据库的名称。
答案 4 :(得分:18)
使用
$ mysqladmin -u <db_user_name> -p create <db_name>
系统将提示您输入密码。还要确保您使用的mysql用户具有创建数据库的权限。
答案 5 :(得分:11)
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'";
答案 6 :(得分:10)
您可以在命令行中使用SQL:
echo 'CREATE DATABASE dbname;' | mysql <...>
或者您可以使用mysqladmin
:
mysqladmin create dbname
答案 7 :(得分:2)
使用基本用户连接到数据库:
mysql -u base_user -pbase_user_pass
并执行CREATE DATABASE,CREATE USER和GRANT PRIVILEGES语句。
这是一个方便的Web向导,可以帮助您处理语句 www.bugaco.com/helpers/create_database.html