2016-10-17 47 views
0

我有一個sql文件,我想從命令行上傳。要做到這一點,我首先需要進入MySQL和創建數據庫在一行中創建MySQL數據庫與sql文件導入

mysql> create database myDB; 

,然後調用命令行下面:

mysql -u username -p myDB < myDB.sql 

有沒有辦法做到這一切從一條線命令行?

我嘗試添加以下行(以及各種組合)的myDB.sql文件的開頭:

create database `myDB`; 
use `myDB`; 

,然後運行

mysql -u username -p < myDB.sql 

,但沒有奏效。

ERROR 1046 (3D000) at line 7: No database selected 

回答

2

.sql文件通常只是一個SQL DDL/DML查詢序列。如果它是由mysqldump創建的,那麼它應該包含從頭開始重新創建數據庫所需的一切,包括必要的create dbcreate table查詢。

如果他們不在那裏,您可以通過簡單的文件連接/修改,例如手動將它們添加到文件的頂部。

cat 'create database foo;' > new.sql 
cat otherstuff.sql >> new.sql 
mysql < new.sql 
+0

就像我在我的問題中說過的,我已經嘗試過了,但沒有奏效。 sql文件的頂部LITERALLY說'create database myDB;使用myDB;' – Sal

+0

劑量你用來登錄到MySQL的帳戶有權限做到這一點?你一定需要被授予'create'權限。 –

+0

我以root身份運行。我可以絕對手動登錄到MySQL並創建表。 – Sal

3

如果產生與--databases--all-databases選項的mysqldump的文件,然後它把正確的CREATE DATABASE語句到轉儲文件。

相關問題