mysql load data问题

一、error 2068

首先连接数据库,执行load data命令,问题如下:

ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

load data命令被拒绝,因为访问存取的限制。

解决:退出后重新连接数据库,连接命令后面加上--local-infile

mysql -u root -p --local-infile

 

二、error 1290

再次执行load data命令,遇到问题:

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

这是因为路径的限制,要导入/导出的文件路径不在指定的范围内。解决方法有两种:

方法一:

执行命令:

show variables like '%secure_file_priv%';

查看secure-file-priv路径,如图:

将要导入的文件放入检索出的路径下,重新执行load data命令。

方法二:

将load data语句写入一个sql文件内,执行文件

 文件名为load data.sql,执行命令

source C:\Users\zhenhao\Desktop\load data.sql

可以绕过对路径的限制(我也不晓得原理)

三、load data 语句注意事项

首先要指定数据库,文件的路径中斜杠要改成双斜杠\或反斜杠/,基本表的名字加不加``不影响,之后fields terminated by ','表示字段以逗号分隔,同理lines terminated by 'rn'表示行之间的分隔,windows系统是rn,linux系统是n,最后ignore 1 lines表示忽略第一行,不然可能会出现导入数据后表头出现在最后一行的情况,如下图: