2013-02-04 38 views
49

當我試圖源特定.sql文件,即'metropolises.sql'我創建並從數據庫中先前保存的,則顯示以下錯誤:mysql:SOURCE錯誤2?

Failed to open file 'metropolises.sql', error: 2

任何想法出了什麼問題?

+1

什麼意思「試圖源的particuar .sql文件」? –

+1

您的意思是「搜索」? – veljasije

+0

我在數據庫中創建了一個表。現在,爲了獲得創建的數據,我輸入了 SOURCE metropolises.sql; 進入終端,但是如上所述的錯誤消息顯示出來。很確定在創建的表格中沒有錯誤。 –

回答

68

假設您的意思是您試圖使用the source command來執行文本文件中的SQL語句,給定的錯誤編號似乎是從POSIX層傳遞過來的。

因此,使用this resource,我們可以推斷出錯誤值2意味着「沒有這樣的文件或目錄」。

總之,你弄錯了路徑。

嘗試提供絕對路徑,因爲它不是明確的當前工作目錄會在你的MySQL服務器的上下文是什麼。你可能會認爲它是你shell的工作目錄,但我們不應該指望這是真的。

+0

謝謝。我知道這是愚蠢的,但如何找到我在數據庫中創建的文件? –

+0

提供絕對路徑。完整的路徑。包括目錄。 –

+5

作爲補充說明,請勿將完整路徑放在引號中。 'SOURCE「/var/test.sql」;'會失敗,錯誤代碼2,而'SOURCE/var/test.sql'將會工作(假設test.sql存在於該位置)。 –

0

可能是你使用可能不正確

在我的系統上創建了C文件abcd.sql文件名或路徑:\

和使用的命令mysql> source c:\abcd.sql然後,我就導致

+0

其實,我在ssh上做的。如何查看在特定數據庫上創建的文件的目錄? –

+0

@PengHuiHow - 你知道那個文件的實際路徑嗎? –

28

只需使用該文件的絕對路徑,然後使用正向斜槓代替反斜槓。

實施例:

反斜槓:源C:\ folder1中\ metropolises.sql
斜槓:源C:/folder1/metropolises.sql

+1

您是否知道是否可以將路徑存儲在全局變量或局部變量(例如@PATH_TO_THE_FILE)中並使用source命令(如「source @PATH_TO_THE_FILE」(這不起作用))?謝謝。 – aloplop85

+1

嗨,你幫我解答了!非常感謝! =) –

9

相關的問題,我得到錯誤2運行源命令:即使文件名或文件路徑中包含空格,也不得使用引號。

+0

啊,這是我的問題,謝謝! – sage88

+0

人們往往認爲,在路徑引號中的空格是必要的。真讓人頭疼! – PavoDive

3

我第一次到達文件

c:\windows>cd c:\akura\Db Scripts 

c:\akura\Db Scripts>mysql -u root -p root 

mysql>\. EXECUTER_NEW_USER.sql 

here EXECUTER_NEW_USER.sql my file name 
2

我已經在Windows相同的錯誤。 我(的:mysql -u根在CMD後):解決它

mysql> SOURCE C:/users/xxx/xxxx/metropolises.sql; 

確保您鍵入正確的文件路徑

-1

路徑的文件夾名稱中刪除空格,它的工作對我的Mac路徑。

(Eg: change the folder name MySQL Server 5.1 to MySQLServer5.1)

0

我使用此查詢在mysql命令行此錯誤:

source `db.sql`; 

我改變了上述以下,使其工作:

source db.sql; 
1

在我的Windows 8.1,和MySQL 5.7.9 MySQL社區服務器(GPL), 我不得不刪除文件路徑後的;

這種失敗:源E:/jokoni/db/Banking/createTables.sql;

這工作:源E:/jokoni/db/Banking/createTables.sql (沒有終止,並正斜槓,而不是Windows的路徑反斜槓)

+0

和你一樣,但我想知道爲什麼? –

0

如果你在Debian 8(傑西)的Linux,嘗試將cd放入'metropolises.sql'的目錄中。運行mysql並執行SOURCE ./metropolises.sql;

基本上,嘗試相對路徑。我試過這個,它的工作原理。

-1

當我嘗試從mysql控制檯執行操作時,我也收到了相同的消息,但是當我打開命令提示符並執行相同的步驟時,它的工作良好,沒有發生任何錯誤 C:\ Users \ SubhenduD> cd。 ./

C:\用戶> CD ../

C:> CD \ XAMPP \ MySQL的\ BIN

C:\ XAMPP \ MySQL的\ BIN>的MySQL -u -root 歡迎MySQL監視器。命令結束於;或\ g。 您的MySQL連接ID是68 服務器版本5.6.16 MySQL社區服務器(GPL)

版權所有(c)2000,2014,Oracle和/或其分支機構。版權所有。

Oracle是Oracle Corporation和/或其子公司 子公司的註冊商標。其他名稱可能是其各自的 所有者的商標。

鍵入'help'或'\ h'尋求幫助。輸入'\ c'清除當前的輸入語句。

mysql>使用balticktravels;

mysql> source balticktravels.sql;

ITS運行良好。你可以檢查它。

2

它可能是文件的文件路徑。如果你不知道你想用,試圖找到在查找文件的文件的準確位置,然後將文件拖動到終端窗口

mysql> SOURCE dragfilePathHere 
1

如果您正在使用遊民確保該文件是服務器,然後使用該文件的路徑。例如,如果文件被存儲在公共文件夾中,你將有

sql> source /var/www/public/xxx.sql 

其中xxx是文件

0

的名字對我來說,這是因爲該文件位於共享驅動器上,它不能訪問,出於某種原因,到那條道路。 我剪下了這個文件,並把它放在我的本地驅動器中,沒有空格的路徑上就解決了。

0

我得到了同樣的錯誤,當我使用命令源,並通過拖放n給了sql文件路徑。

然後,我只需刪除那些默認情況下出現的單引號拖放,文件擴展名前的空格,它的工作。

溶液:

源/家/ XYZ/.SQL文件(路徑和文件擴展名之前有一個空格)