如何将 CSV 加载到在 Raspberry Pi2 上运行的 MariaDB 中的表中?

问题描述

我已经在连接到我的网络的 Pi2 上安装了 MariaDB。我可以通过 ssh 甚至 VNC 直接访问 Pi。我也可以使用 MysqL Workbench 连接到它。

我有 CSV(梦幻足球统计数据),我想加载到数据库中的一个表中,这两个数据我都已经创建了。

CREATE DATABASE stats;
USE stats;
CREATE TABLE ff2020(
    id INT NOT NULL AUTO_INCREMENT,PlayerName VARCHAR(255) NOT NULL,Team VARCHAR(255) NOT NULL,Position VARCHAR(255) NOT NULL,Age INTEGER,GamesPlayed INTEGER,Gamesstarted INTEGER,Targets INTEGER,Receptions INTEGER,PassingYds INTEGER,PassingTDs INTEGER,PassingAtt INTEGER,rushingYds INTEGER,rushingTDs INTEGER,rushingAtt INTEGER,ReceivingYds INTEGER,ReceivingTDs INTEGER,FantasyPoints INTEGER,Interceptions INTEGER,Fumbles INTEGER,FumblesLost INTEGER,PRIMARY KEY (id)
);

我使用 WinSCP 将包含 CSV 的文件从我的计算机传输到 RPi,并且最初将包含 CSV 的文件放在桌面上。

USE stats;
LOAD DATA INFILE '/home/pi/Desktop/CSVs for stats/data-master/yearly/2020.csv'
INTO TABLE ff2020
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LInes TERMINATED BY '/n'
IGnorE 1 ROWS;

作为回应,我收到消息: Error Code: 1045. Access denied for user 'marine'@'localhost' (using password: YES)

用户 marine 拥有所有权限,但使用 root 会发生同样的事情。 我看过其他帖子提到改变:

LOAD DATA INFILE...

LOAD DATA LOCAL INFILE...

当我尝试这样做时,我收到消息:Error Code: 2068. LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

我也看到有人说要反转文件路径中的所有斜线,但是当我尝试时,我没有得到任何不同的结果。

所以,我假设存在一个问题,即 MariaDB 无法看到或访问 pi 上的其他文件,我不知道如何解决这个问题。我是否需要做一些更复杂的事情,例如启用对 MariaDB 的远程访问,即使一切都在一台设备上?

谢谢。

解决方法

登录时传递 --local-infile

mysql -u[username] -p[password] --local-infile

然后指定 LOAD DATA LOCAL INFILE... 应该可以解决问题