mysql - MySQL 错误 1148 和 1290:通过在 MySql Workbench 8 中导入 csv 文件来自定义日期类型格式 dd-mm-yyyy
问题描述
我厌倦了几种方法来导入具有 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');
然后我得到了错误:
错误代码:1148。此 MySQL 版本不允许使用的命令
然后我在这篇文章中找到了解决方案。IE,
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 ...)
使用上述方法后,出现以下错误:
错误代码: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 中定义)
推荐阅读
- python - 如何随机化密码生成器的字符顺序
- python - 具有扩展属性的深色主题
- laravel - 为 Laravel 模型添加属性
- git - 如何在 Git Bash 中初始化 Composer 项目?
- ruby-on-rails - 如何让引导组件在使用rails的ajax之后打开?
- docker - docker工作目录和singularity的区别
- excel - 我想创建一个以管理员权限运行 .xlsm 文件的 .vbs 文件
- java - 在 deeplearning4j 中访问所有层的权重和原始激活
- android - 当 MaterialCardView 被子项覆盖时,其阴影不一致
- python - Python 列表理解:for 和 if 语句?