MySQL 错误 1148 和 1290:通过在 MySql Workbench 中导入 csv 文件自定义日期类型格式 dd-mm-yyyy

MySQL Error 1148 & 1290 : Custom Date type format dd-mm-yyyy by importing csv file in MySql Workbench 8

我厌倦了几种导入 dd-mm-yyyy 日期数据类型的 csv 文件的方法。首先我使用了 LOAD DATA LOCAL INFILE 方法:

LOAD DATA LOCAL INFILE 'C:\Log1.txt' 
INTO TABLE Log_tmp 
COLUMNS TERMINATED BY ',' 
LINES TERMINATED BY '\r\n' 
(uid, DId , CName, @var1, Price, Custom) 
SET date = STR_TO_DATE(@var1,'%d-%m-%y'); 

然后我得到了错误:

Error Code: 1148. The used command is not allowed with this MySQL version

然后我在这个post中找到了解决办法。即,

On Windows (a little bit easier):
1. Run the following statement in MySQL Workbench:
SET GLOBAL local_infile = 'ON';
2. Run the following statement and make sure it shows ON:
SHOW VARIABLES LIKE "local_infile";
3. SHOW VARIABLES LIKE "secure_file_priv"; //Then you'll get the default path, usually C:\ProgramData\MySQL\MySQL Server 8.0\Uploads
4. Put your files into the folder shown in step 3
5. LOAD DATA without the LOCAL keyword (i.e., LOAD DATA INFILE 'your_file' INTO TABLE table_name ...)

使用上述方法后,出现如下错误:

Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

请帮我解决。

如果您在 my.cnf

中将 loose-local-infile 设置为 1,它需要工作
loose-local-infile = 1

然后重新启动您的 mysql 服务器。

重新启动后,您可以通过发出

来检查全局变量
 SHOW VARIABLES LIKE 'local_infile';

您也可以启用 local_infile 而无需使用 SET GLOBAL local_infile = 1; 更改 my.cnf 但是请记住,此变量将回滚到其原始状态(在 [=23= 中定义) ]) 重启后