mysql - 加载数据 infile 什么都不做
问题描述
我对 SQL 有点陌生。我正在尝试将数据添加到一个已经创建的表中,csv 看起来像这样,它有 132645 行长:
iso_code;continent;location;date;population;total_cases;new_cases;new_cases_smoothed;total_deaths;new_deaths;new_deaths_smoothed;total_cases_per_million;new_cases_per_million;new_cases_smoothed_per_million;total_deaths_per_million;new_deaths_per_million;new_deaths_smoothed_per_million;reproduction_rate;icu_patients;icu_patients_per_million;hosp_patients;hosp_patients_per_million;weekly_icu_admissions;weekly_icu_admissions_per_million;weekly_hosp_admissions;weekly_hosp_admissions_per_million
AFG;Asia;Afghanistan;24/02/2020;398354280;50;50;NULL;NULL;NULL;NULL;126;126;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;
AFG;Asia;Afghanistan;25/02/2020;398354280;50;0;NULL;NULL;NULL;NULL;126;0;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;
AFG;Asia;Afghanistan;26/02/2020;398354280;50;0;NULL;NULL;NULL;NULL;126;0;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;
AFG;Asia;Afghanistan;27/02/2020;398354280;50;0;NULL;NULL;NULL;NULL;126;0;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;
AFG;Asia;Afghanistan;28/02/2020;398354280;50;0;NULL;NULL;NULL;NULL;126;0;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;NULL;
我的 sql 查询是这样的:
LOAD DATA LOCAL INFILE 'C:\\Users\\Usuario\\Desktop\\CovidDeaths.csv' INTO TABLE coviddeaths
columns terminated by ';'
LINES TERMINATED BY '\r\n';
我已经使用导入向导将一些数据上传到 coviddeaths 表,但上传速度非常慢,因此尝试使用 LOAD DATA INFILE 查询完成导入。要查看已经上传了多少行,我使用了
select count(*) from coviddeaths;
并抛出:
count(*)
11312
当我尝试运行 LOAD DATA LOCAL INFILE 查询时,没有任何反应。鼠标指针旋转了一秒钟,就像它试图运行它一样,但它没有添加任何额外的行。它不会像我读过的 错误代码那样抛出任何错误:1148。此 MySQL 版本不允许使用使用的命令。我还尝试将 csv 文件放在 Uploads 文件夹中,我的 Secure File Priv 选项在 my.ini 中指向该文件夹:
# Secure File Priv.
secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"
它什么也不做。有任何想法吗?
提前致谢!
编辑 2:数据库模式:
解决方案
该错误来自客户端和服务器都必须启用允许导入本地数据文件的选项。如果您使用命令行客户端,则需要像这样打开客户端:
mysql --local-infile -u root -p
此外,需要使用该local-infile
选项配置 MySQL 服务器。
secure-file-priv
不需要,因为它控制在服务器上导入或导出文件,而不是从客户端。
另请参阅错误 1148:此 MySQL 版本不允许使用的命令或我对“mysql 8.0”本地 infile 的回答失败我尝试并显示设置。会不会是权限问题?
错误消息异常模糊。MySQL 错误消息通常更准确和信息丰富。我在 2019 年记录了一个错误以请求改进错误消息,他们确实在 MySQL 8.0 中修复了它。
推荐阅读
- svg - 当另一端结束时,svg 动画不起作用
- python - 如何在不使用外部模块的情况下在 Python 中打开/创建图像
- javascript - 字符串树枝文件中的 Javascript 变量
- handlebars.js - 在模板主题中动态获取车把路径
- r - 如何返回 R 中向量或数据框中每个元素的索引?
- javascript - 使用隐藏输入将 Javascript 变量传递给 PHP
- wordpress - 基于先前分类值 wordpress 的限制值分类
- javascript - JavaScript 和 HTML 按钮 onclick() 不工作
- python - Unescape Hex 代码点 \u0026 而不改变 Python 中的编码
- php - 如何配置 PhpMyAdmin 以防止用户修改 `phpmyadmin` 表中的其他用户设置?