我一直在用这个SQL错误撞击我的脸约45分钟,我觉得它会变得很傻。
我正在尝试将.txt文件加载到我的数据库中,该数据库位于其他地方的服务器上。我在Windows 7上使用putty。
我正在使用的sql调用如下:
LOAD DATA LOCAL INFILE "C:/Users/Sam/Desktop/students_data.txt" INTO TABLE students;
我得到的回复是ERROR 2 (HYOOO): File 'C:/Users/Sam/Desktop/students_data.txt' not found (Errcode:2)
如果有人能够阐明这一点,那将是奢侈的。我已经尝试将/
切换为\
并使用单引号等,但似乎没有任何效果。通过shift +单击实际文件并粘贴它来复制文件路径。
答案 0 :(得分:6)
我找到了解决方案。首先从sql语句中删除LOCAL一词。第二 - 通常将文件放入MySQL DATA文件夹 - bin / mysql / msql5.5.8 / data /以及您正在使用的DB。它对我有用。如果文件很大,您可能需要在php.ini文件中检查MAX_FILE上传编号。
答案 1 :(得分:2)
我也有这个问题,然后我读到了这个:
文件名必须以文字字符串形式给出。在Windows上,指定 路径名中的反斜杠为正斜杠或双反斜杠
(来自http://dev.mysql.com/doc/refman/5.1/en/load-data.html)
我 使用了LOCAL关键字,但是像这样转义了文件路径:str_replace('\\','/',$file)
,然后就像魅力一样!
答案 2 :(得分:1)
也有这个并且使用cmd.exe解决了它,发现文件名错误地以filename.txt.txt的形式修复了它。
答案 3 :(得分:1)
将“/”替换为“/”作为(“”)中filename.txt之前的路径目录。如果你只是将文件保存在mysql数据文件夹中并做我上面提到的事情会更好。它肯定会工作。
答案 4 :(得分:1)
尝试将路径键入为C:\\mydir\\myfile.csv
,即使用\\
代替\
答案 5 :(得分:0)
LOAD DATA LOCAL INFILE 'C:\\cygwin\\home\\jml58z\\e_npv\\Fn_awk2010.mysql' INTO TABLE mydata
用双\它工作
答案 6 :(得分:-1)
对不起,我之前的回答是错误的。
在我的情况下,我连接到代理,而不是真正的物理mysql实例,因此它当然无法获取我的本地文件。
要解决此问题,请找出真正的物理mysql实例IP,直接将其连接。您需要DBA的帮助。