- 如果在my.ini文件配置secure_file_priv为空"",load data会把之前默认的安装环境下路径作为前缀加上,出现找不到路径情况;
- 如果secure_file_priv配置为其他盘或者其他地址,重启后load data时,即使准确的给出了刚才配置的绝对地址,还是会提示
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
也就是当前地址和文件录入地址不一致,MySQL开启了文件导入导出保护机制,即使我导入的和文件配置的地址是一样的。 - 我试过了在安装目录的bin下也放一个my.ini,试过了secure_file_priv配置为空或者指定路径,试过了my.ini编码格式配为ansi、也试过了电脑管理中重启MySQL、以为是load data路径没写对,试过了能写的几种路径都不行。
- 然后看见另一种说法,当前priv指定为空。导入数据前use了某个库,所以会在use的库下去查找数据文件,也就附带了默认安装地址;把文件放在刚才use的库下,再导入csv就可以了。
- 然后在priv指定为空前提下,尝试进入MySQL后,不先use指定库,然后还是用我指定的其他绝对地址导入,会提示没有选择数据库,无法进入下一步,所以还是要先指定库。
- 应该有其他解决方法,欢迎指正。
附:
1.MySQL表结构数据结构与csv不一致,修改字段类型;
alter table 表名 modify 字段名 新的字段类型;
中文字段名要加反单引号,英文模式esc下面那个``;
2.导入表数据后,中文乱码,编码不对,修改表的编码格式
查看数据库的编码 show create database 库名;
查看表的编码 show create table 表名;
修改表的编码 alter table 表名 default character set utf8;
修改库编码 alter database lucky default character set utf8;
做好的CSV直接导入数据库,中文是���
1.尝试把csv文件改utf8格式,用notepad或者下面: ×
把.csv后缀改成.txt
打开txt,选择另存为,编码方式改成UTF-8
把.txt后缀改为.csv
2.MySQL的库和表都改Utf8 ×
3.是否两个中文给的长度不够,增加长度 ×
alter table depart_amount modefy 部门
varchar(40);
3.load data infile 的时候character set utf8 ◡
into table `depart_amount`
character set utf8
fields terminated by ','
enclosed by '"'
lines terminated by '\r\n'
ignore 1 rows;
修改表编码参考:https://blog.csdn.net/qq_41125219/article/details/123179091
MySQL与excel、txt、csv各种格式文件导入导出参考:
https://www.cnblogs.com/IT-NXXB/p/14322798.html
load data infile '科目发生额.csv'
into table `depart_amount`
character set utf8
fields terminated by ',' 字段间的分隔符
enclosed by '"' 字段值由什么符号包围
lines terminated by '\r\n'行分隔符
ignore 1 rows; 忽略的行数