2010-03-11 14 views

回答

137
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 

如果你真的只想創建一個數據庫。

+1

我在第27行得到這個錯誤ERROR 1046(3D000):沒有選擇數據庫 當我運行echo「create database databasename」| mysql -u -u username -p命令 – keerthi 2013-03-15 05:16:43

+0

@keerthi:或許你的用戶沒有任何現有模式的權限? – Kris 2013-03-15 09:40:13

+1

這是因爲有兩個'-u'標誌 – Stephen 2013-08-20 16:37:28

7

你可以在命令行中使用SQL

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

或者你可以使用mysqladmin

mysqladmin create dbname 
164

你的意思,而MySQL的環境?

create database testdb; 

或直接從命令行:

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

mysql -u root -e「create database testdb」; 那就是我要找的:) 謝謝 – koszikot 2010-03-11 21:07:50

+1

如果你有密碼,只需加上-p。按下輸入後,系統會詢問您的密碼。以下是一個使用我的用戶的例子,它是根用戶(如果您有匿名用戶名,則更改它),並且它還爲數據庫使用名稱「oc_local」(如果希望以不同方式調用數據庫,則更改它) - ----> mysql -u root -p -e「create database oc_local」; – pablofiumara 2013-11-12 01:48:46

62

如果您創建了一個新的數據庫,那麼只需爲該數據庫創建具有權限的用戶即可(如果出現任何問題,您不會損害root用戶登錄名和密碼)。所以一切融合在一起看起來就像這樣:

mysql -u base_user -pbase_user_pass -e "create database new_db; GRANT ALL PRIVILEGES ON new_db.* TO [email protected] 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密碼

+0

海量。剛剛添加這個偉大的一班輪到達什麼片段。如果任何人有一個空格的root密碼:'-p「root密碼在這裏」'工作正常 – hmedia1 2017-06-09 00:13:50

30
mysqladmin -u$USER -p$PASSWORD create $DB_NAME 

替換上述變量,你是好去與這個oneliner。 $ USER是用戶名,$ PASSWORD是密碼,$ DB_NAME是數據庫的名稱。

+0

這是最好的解決方案,它的工作完美 – 2014-11-22 04:31:57

1

使用基本用戶連接到數據庫: mysql -u base_user -pbase_user_pass 並執行CREATE DATABASE,CREATE USER和GRANT PRIVILEGES Statements。

這裏很方便的網絡嚮導,幫助您與報表 www.bugaco.com/helpers/create_database.html

15

使用

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

將提示您輸入密碼。還要確保你使用的mysql用戶有權創建數據庫。

4

該ist和第二個答案是好的,但如果有人正在尋找一個腳本或如果你想動態我。e(db/username/password in variable)then:

#!/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 [email protected]'127.0.0.1' IDENTIFIED BY '$PASS'"; 
mysql -uroot -prootpassword -e "GRANT SELECT, INSERT, UPDATE ON $DB.* TO '$USER'@'127.0.0.1'";