(这是一篇记录自己愚蠢错误的博客……避免以后再犯)
起因
前些天需要把一些数据从csv文件导入进MySQL,本来觉得是个几分钟的活计,最后硬是搞了几个小时才收场……
经过
- 开始导入:
LOAD DATA INFILE "xxx" INTO TABLE tbl FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n'
直接报错:ERROR 1290 (HY000): The MySQL server is running with the –secure-file-priv option so it cannot execute this statement.
使用SHOW GLOBAL VARIABLES LIKE '%secure_file%'
查看当前配置的上传目录,windows下一般是在 C:\ProgramData\MySQL\MySQL Server 5.7\Uploads
知道了目录,我就美滋滋的把要加载的文件放在了这个目录下,想着这下就没问题了吧?结果…… 再次报错:ERROR 13 (HY000): Can’t get stat of ‘xxx’ (Errcode: 2)
用perror 2
命令查询可知,错误代码13的意义是No such file or directory。这就奇了怪了,明明文件就在这里,为什么会有这种提示呢……
查了MySQL的文档后发现,原因如下:
MySQL Load data
If LOCAL is specified, the file is read by the client program on the client host and sent to the s