2011-03-01 144 views
165

我有一個數據庫`nitm`。我沒有在那裏創建任何表格。但我有一個包含數據庫所有必要數據的sql文件。該文件是`C:\驅動器`中的`nitm.sql`。這個文件的大小約爲103M。我正在使用wamp服務器。導入SQL文件到mysql

我已經在mysql控制檯中使用以下語法來導入文件。

mysql>c:/nitm.sql; 

但是這沒有奏效。

+0

請參閱https://stackoverflow.com/questions/17666249/how-to-import-an-sql-file-using-the-command-line-in-mysql – 2017-06-22 14:22:04

+0

檢查https://stackoverflow.com/questions/11407349/mysql-how-to-export-and-import-a-sql-file-from-command-line – AZinkey 2017-11-11 13:07:59

回答

86

最後,我解決了這個問題。我將`nitm.sql`文件放在`mysql`文件夾的bin文件中,並使用以下語法。

C:\wamp\bin\mysql\mysql5.0.51b\bin>mysql -u root nitm < nitm.sql 

這個工作。

+6

這不是從OPT問的mysql控制檯問的,而是從控制檯進入mysql的。 Robert Anthony Tribiana的答案確實介紹瞭如何從mysql控制檯執行此操作。 – 2014-06-19 09:10:19

+0

這不是解決問題的確切方法,它不是解決方案。 – 2015-11-12 10:50:40

+2

你們知道這是回答這個問題的OP嗎? – Wes 2016-02-01 14:20:38

2
從命令行

(CMD.EXE,而不是從內mysql外殼)試着這麼做:

type c:/nite.sql | mysql -uuser -ppassword dbname 
+0

我還沒有爲數據庫創建任何密碼,所以它在密碼字段中是空白的。我已經使用了上面的語法,像這樣:c:/nitm.sql | mysql -u root -p nitm但是這也不起作用。你能幫助我更多嗎? – kushalbhaktajoshi 2011-03-01 10:14:40

+0

只是省略-p然後。 – 2011-03-01 10:16:04

+0

省略-p也不起作用。這種拋出錯誤,如'c:'不被識別爲內部或外部命令,可操作程序或批處理文件。 – kushalbhaktajoshi 2011-03-01 10:29:05

8

你幾乎沒有 使用

mysql> \. c:/nitm.sql; 

您也可以通過

訪問幫助
mysql> \? 
+0

這沒有奏效。當我使用mysql> \。 C:/nitm.sql; ,它拋出錯誤,如無法打開文件'c:\ nitm.sql;',錯誤:2 – kushalbhaktajoshi 2011-03-01 10:20:42

+0

你有沒有嘗試過這種變化?某些應用程序尊重C:\ nitm.sql – Lmwangi 2011-03-01 10:25:07

+0

另請注意,最後的分號不是必需的。所以刪除它。另一種選擇是'cd c:'然後嘗試「\。nitm.sql」 – Lmwangi 2011-03-01 10:26:01

1
mysql>c:/nitm.sql; 

這會將mysql命令的輸出寫入'nitm.sql;' (什麼是「;」怎麼辦呢?)假設你有原始文件的副本(你可以覆蓋它之前),則:

mysql < c:/nitm.sql 
+0

這也沒有工作。它拋出錯誤,如ERROR 1064 <42000>:您的SQL語法有錯誤;檢查與您的MySql服務器版本相對應的手冊,在第1行'mysql kushalbhaktajoshi 2011-03-01 10:24:17

2

是否轉儲包含未在你的版本支持的功能MySQL的?您也可以嘗試刪除開始(和結尾)的MySQL註釋的SET語句。

我不知道你的轉儲是否來自Linux版本的MySQL(行結尾)?

+0

我已經刪除了mysql註釋的SET語句。但仍然發生錯誤。 – kushalbhaktajoshi 2011-03-01 11:15:44

+0

您可以嘗試登錄到MySQL命令shell並使用then語句:「source c:\ nite.sql」。不要忘記選擇正確的數據庫。 – Maickel 2011-03-01 12:01:23

+0

我真的很感謝你的努力。謝謝。 – kushalbhaktajoshi 2011-03-01 12:18:49

49

如果你正在使用wamp,你可以試試這個。首先鍵入use your_Database_name

  1. 單擊您的wamp服務器圖標,然後查找MYSQL > MSQL Console然後運行它。

  2. 如果你沒有密碼,只需點擊進入,然後鍵入:

    mysql> use database_name; 
    mysql> source location_of_your_file; 
    

    如果你有密碼,你會PROMT輸入密碼。先輸入您的密碼,然後鍵入:

    mysql> use database_name; 
    mysql> source location_of_your_file; 
    

location_of_your_file應該像C:\mydb.sql

所以稱道的是的mysql>源C:\ mydb.sql;

這種導入sql轉儲對BIG SQL FILE很有幫助。

我複製我的文件mydb.sq到目錄C:。它應該是大寫C:爲了運行

,就是這樣。

+0

謝謝,謝謝,謝謝 – celwell 2013-10-23 02:56:27

+1

這個答案似乎是WAMP特有的,而顯示的代碼是從任何運行MySQL的環境,您可以通過終端或控制檯訪問MySQL。 – 2014-06-19 09:12:56

371

從MySQL控制檯:

的mysql>use DATABASE_NAME;

的mysql>source path/to/file.sql;


確保有,如果你指的是相對路徑路徑前沒有斜槓..我花了一段時間才意識到這一點!笑

+35

如果您正在創建相對參考,則不需要路徑前的斜槓。如果你從根目錄開始,你將會,例如'/ home/user/file.sql' – 2013-08-15 21:41:23

+5

可惜沒有辦法給收藏夾添加答案:( – baldrs 2013-12-17 18:44:49

+3

在Chrome中它們被稱爲書籤,你可以點擊地址欄中的明星;) – Andrew 2013-12-29 00:17:35

9

如果您使用的XAMPP

C:\xampp\mysql\bin\mysql -uroot -p nitm < nitm.sql 
2

我已經安裝WAMP的服務器在d:驅動器,以便我只好去以下路徑從烏爾命令行 - >(如果u必須安裝烏爾WAMP在C:驅動器則只需更換d:wtih C:在這裏)

D:\>cd wamp 
D:\wamp>cd bin 
D:\wamp\bin>cd mysql 
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button) 
D:\wamp\bin\mysql\mysql5.5.8>cd bin 
D:\wamp\bin\mysql\mysql5.5.8\bin>mysql -u root -p password db_name < "d:\backupfile.sql" 

這裏是我的phpmyadmin 密碼的用戶是phpMyAdmin的密碼,使密碼如果你還沒有設置任何密碼的root根本沒有在那個地方, db_name是數據庫(爲你的數據庫你的備份) ,backupfile.sql是你想要你的數據庫備份的文件您也可以將備份文件位置(d:\ backupfile.sql)從您的計算機上的任何其他位置更改爲

24

在Windows中,如果上述建議給出錯誤(文件未找到或未知的數據庫)要向前雙斜線:

在MySQL控制檯:

mysql> use DATABASE_NAME; 

mysql> source C://path//to//file.sql; 
+0

在我的Windows機器上爲我工作的單向正斜槓。 – 2016-05-16 18:08:25

3

在Linux中,我在啓動mysql之前導航到包含.sql文件的目錄。系統光標現在與文件位於同一位置,您不需要路徑。使用source myData.sql將我的日期替換爲文件的名稱。

cd whatever directory 

mysql - p 

連接targetDB

source myData.sql 

完成

3

不要忘記使用

charset utf8 

如果您的SQL文件是UTF-8 :)

所以,你需要做的:

cmd.exe

mysql -u root

mysql> charset utf8

mysql> use mydbname

mysql> source C:\myfolder\myfile.sql

祝你好運))

0

在Windows操作系統下的命令對我的作品。

mysql>Use <DatabaseName> 
mysql>SOURCE C:/data/ScriptFile.sql; 

文件名周圍沒有單引號或雙引號。路徑將包含'/'而不是'\'。

16

好吧,我使用Linux,但我認爲這也適用於Windows。 您可以直接從命令提示符

> mysql -u <user name> -p<password> <database name> < sqlfilename.sql 

或者從MySQL提示中,你可以使用這樣做:

mysql>source sqlfilename.sql 

但是這兩種方法都在他們顯示結果自己的利益。 在第一種方法中,腳本在遇到錯誤時立即退出。而更好的部分是,它會告訴你發生錯誤的源文件中的確切行號。但是,它只顯示錯誤。如果沒有遇到任何錯誤,腳本將顯示NOTHING。這可能有點不安。因爲你經常用一堆命令運行腳本。

現在第二種方法(從mysql提示符中)具有這樣的好處,即它顯示腳本中每個不同MySQL命令的消息。如果遇到錯誤,它將顯示mysql錯誤消息,但會繼續執行腳本。這可能很好,因爲在再次運行腳本之前,您可以返回並修復所有錯誤。缺點是它不會在遇到錯誤的腳本中顯示行號。這可能有點痛苦。但是,錯誤消息是描述性的,所以你可以找出問題所在。例如,我比較喜歡直接從操作系統命令行方式。

4

對於XAMPP上的本地主機。打開cmd窗口並鍵入

cd C:\xampp\mysql\bin 
mysql.exe -u root -p 

注意!後-p 沒有分號輸入您的密碼,然後鍵入

use database_name; 

選擇您需要的數據庫。

檢查,如果你的表是有

show tables; 

從您的SQL文件

source sqlfile.sql; 

我已經把我的文件基於C導入:\ XAMPP \ mysql的\ BIN位置,以便不與sql文件的位置混淆。

1

出口特定數據庫間

djimi:> mysqldump --user=root --host=localhost --port=3306 --password=test -B CCR KIT >ccr_kit_local.sql 

這將出口CCR和KIT數據庫...

導入全部出口DB到特定的MySQL實例(你必須要在您的轉儲文件)

djimi:> mysql --user=root --host=localhost --port=3306 --password=test < ccr_kit_local.sql 
3

嘗試:

mysql -u username -p database_name < file.sql 

檢查MySQL Options

注意:最好使用SQL文件file.sql的完整路徑。