问题描述:导入数据时,出现这个错误:
Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
解决办法:
在MySQL安装路径找到my.ini文件(需要有文件编辑权限),
(一般是C盘或D盘吧,看你们自己的安装情况,我的如下:)
D:\ProgramData\MySQL\MySQL Server 5.7\my.ini
C:\Program Files\mysql-8.0.18-winx64\my.ini
找到这串字“secure_file_priv”,设它没有值:
secure_file_priv=
解释一下,
secure_file_priv 为 null 时,表示限制mysqld不允许导入或导出。
secure_file_priv 为 C:\temp 时,表示限制mysqld只能在C:\temp目录中执行导入导出,其他目录不能执行。
secure_file_priv 没有值时,表示可在任意目录导入导出。
然后重启MySQL服务,如下操作:
在任务栏搜索框输入“services.msc”,找到MySQL,然后重启一下,OK。
-- 1.复制源表,方便清洗数据
create table table_name_new as (select * from table_name_old);
-- 2.根据job_company等分组,查找出id最小的。然后再查找id不包含的。这样就查询出了所有的重复数据(除了id最小的那行)
SELECT
*
FROM
tb_job AS ta
WHERE
ta.id <> ( SELECT MAX( tb.id ) FROM tb_job AS tb
WHERE ta.job_company = tb.job_company AND ta.job_name=tb.`job_name` AND ta.job_salary=tb.`job_salary` AND ta.job_area=tb.`job_area`
);
-- 3.删除表中多余重复试题并且只留1条
DELETE
FROM
tb_job AS ta
WHERE
ta.id <> (
SELECT
t.maxid
FROM
( SELECT MAX( tb.id ) AS maxid FROM tb_job AS tb WHERE ta.job_company = tb.job_company AND ta.job_name=tb.`job_name` AND ta.job_salary=tb.`job_salary` AND ta.job_area=tb.`job_area` ) t
);
-- 4.导出xls
SELECT job_company,job_name,job_salary,job_edu,area,IFNULL(public_time,'')
FROM tb_job INTO OUTFILE 'C:\\mysqltoxls\\job_info.xls'
CHARACTER SET gbk