2010-03-07 97 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,处理整个数据和模式设置过程的智能工具,并将其存储到一个文件中。