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



我厌倦了几种方法来导入具有dd-mm-yyyy日期数据类型的csv文件。首先,我使用了加载数据本地INFILE方法:

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

然后我得到错误:

错误代码:1148。此 MySQL 不允许使用的命令 版本

然后我在这篇文章中找到了一个解决方案。 即,

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:ProgramDataMySQLMySQL Server 8.0Uploads
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 ...)

使用上述方法后,我得到以下错误:

错误代码:1290。MySQL 服务器正在运行 --secure-file-priv 选项,因此它无法执行此语句

请帮我解决问题。

如果您将

loose-local-infile设置为 1 my.cnf,则需要工作

loose-local-infile = 1

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

重新启动后,您可以通过发出以下命令检查全局变量

 SHOW VARIABLES LIKE 'local_infile';

您也可以在不更改 my.cnf 的情况下启用local_infile SET GLOBAL local_infile = 1;但请记住,此变量将在重新启动后回滚到其原始状态(在 my.cnf 中定义)

最新更新