Mysql 由于文件头信息导致加载数据本地加密1064错误?
我的MySQL版本(Ubuntu 10.04上的5.1.63版)出现了一个非常奇怪的错误。这是我使用的语句Mysql 由于文件头信息导致加载数据本地加密1064错误?,mysql,mysql-error-1064,mysqlimport,Mysql,Mysql Error 1064,Mysqlimport,我的MySQL版本(Ubuntu 10.04上的5.1.63版)出现了一个非常奇怪的错误。这是我使用的语句 LOAD DATA LOCAL INFILE '/home/file/path/file.csv' INTO TABLE tbl_abc FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n' IGNORE 1 LINES (`field1`,`field2`,`field3`,`field4`,`field5
LOAD DATA LOCAL INFILE '/home/file/path/file.csv' INTO TABLE tbl_abc
FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n'
IGNORE 1 LINES (`field1`,`field2`,`field3`,`field4`,`field5`,`field6`);
因此,输入此命令后,我收到以下响应:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax
to use near ',,,,laworkfo ftpd27018 173-9-6-225-NewE
Thu Apr 2 06:30 - 06:30 (00:00) ' at line 1
奇怪的是,这些数据都不在我能找到的任何地方。我假定它是某种文件头或文件属性,但我不能肯定这一点。无论如何,我认为通过添加“忽略1行”可以或应该消除这种情况,但事实并非如此。我试过“忽略2行”、“忽略3行”、“忽略100行”等,但似乎没有任何效果
我也尝试过使用其他行分隔符,如“\r\n”等,但仍然无效
如有任何帮助,将不胜感激。此命令的正确格式为 将数据填充“/home/file/path/file.csv”加载到表tbl_abc(col1,col2,…)中 在列列表中,我相信末尾缺少一个结束括号
如果输入文件中字段的顺序与表中列的顺序不同,则可以指定列列表。否则,MySQL无法告诉您如何将输入字段与表列匹配。如果您将其直接放入sql,则不必转义,因此请尝试以下方法:
ENCLOSED BY '"'
改变这个
LINES TERMINATED BY '\n'
对此
LINES TERMINATED BY '\r\n'
也要改变这一点
FIELDS TERMINATED BY ';'
并且仅当csv位于安装数据库的服务器之外时才使用本地示例(否则使用
LOAD DATA INFILE
这似乎不是一个完整的命令,我想你的错误就在这里(
field1
,field2
,field3
,field4
,field5
,field6
;不要大声喊叫,大家都想睡觉了——这是一个打字错误(在整夜工作之后)。它应该读到(field1,field2,field3,field4,field5,field6);
EJP-我没有叫喊。按照我以前的学校惯例,我总是大写MySQL命令和关键字来区分它和输入参数。:-)你的标题中有一半以上是错误信息,它肯定不是大写的。是的,今天早上我键入时,右括号只是一个打字错误。我指定了列列表,因为输入文件中字段的顺序与列的顺序不同。你的建议都不起作用,也不正确虽然我很感激你的回复,但是我已经得到了任何不同的结果。像这样添加替换如何将数据本地填充'/home/file/path/file.csv'替换加载到表tbl_abc中