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表示忽略第一行,不然可能会出现导入数据后表头出现在最后一行的情况,如下图: