2010-03-07 96 views
0

我想將數據庫表導出到文件。
我正在使用下面的代碼,但它給出了以下錯誤。命令將mysql數據庫導出到文件

String filename="D:/backup.txt"; 

我已經創建

st.executeQuery("select * from tamil into outfile'"+filename+"' fields terminated by ','"); 

但錯誤是:

值java.sql.SQLException:無法創建 /寫文件「d:\爲Backup.txt 'Errcode:13

幫我清除錯誤
謝謝

+0

您是否試圖通過Java來完成這項工作,或者您可以使用Mysql Gui來導出SQL數據庫 – gmhk 2010-03-07 07:09:48

回答

0

不是那個錯誤只是表示你不允許寫這個文件嗎?檢查是否可以在該位置創建具有該名稱的文件,例如使用記事本或複製文件。

0

您需要記住它將它保存到運行數據庫的計算機上的文件而不是運行java程序的計算機上。因此,例如,如果數據庫計算機是一臺Linux機器然後

String filename="D:/backup.txt"; 

絕對不會工作。所以,如果你牢記這一點,你可以測試你爲什麼不能寫入D:/backup.txt。

+0

我相信這不是嚴格正確的。否則,遠程連接和諸如phpmyadmin之類的東西將不存在。 – Alfabravo 2010-03-07 07:29:44

+0

http://dev.mysql.com/doc/refman/4.1/en/select.html states ... SELECT ... INTO OUTFILE'file_name'形式的SELECT將所選行寫入文件。該文件是在服務器主機上創建的,因此您必須具有FILE權限才能使用此語法。 file_name不能是現有的文件,除此之外,它可以防止/ etc/passwd和數據庫表等文件被破壞。 – Paul 2010-03-07 10:40:35

0

事情是,這個錯誤指向你的程序無法訪問資源(文件)的事實。奇怪,因爲它似乎 - 你是在一個Windows環境 - ,你可能會檢查是否允許執行您的Java應用程序的用戶在D:\

創建文件此外,正如fazo所說,你會考慮使用mysqldump,處理整個數據和模式設置過程的智能工具,並將其存儲到一個文件中。