windows

eeq64g8w  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(295)

我在一个.txt文件中有大量的数据(大约有90.000行和10列,每个‘item’用逗号分隔),我需要找到一种方法将它从我的txt文件导入一个mysql表。我做了一些研究,发现了以下代码:

LOAD DATA INFILE "/my_path/file.txt" INTO TABLE "table" CHARACTER SET "utf8" FIELDS TERMINATED BY "," LINES TERMINATED BY "\r\n";

但这给了我以下错误:

Error Code: 29. File '/my_path/file.txt' not found (OS errno 13 - Permission denied)    0.000 sec

所以在搜索了一点之后,我发现很多人都有这个问题,但是仅仅通过使用“local”(加载数据local infle)这个词就解决了,但是这给了我一个错误:

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

(我正在使用mysql workbench 8.0)
所以我试着设置一些全局变量,比如 secure-file-priv="" , loose-local-infile=1 以及 local-infile=1 在我的my.ini文件中,但似乎什么都不起作用。
谁能帮帮我。。。
ps 1:我不能使用向导导入,因为即使它可以工作,它也太慢了
ps 2:我试着把我的txt文件转换成csv文件,但也没用。

mzsu5hc0

mzsu5hc01#

没有 LOCAL , LOAD DATA INFILE 告诉mysql服务器在自己机器的文件系统中找到文件并读取。
因此,路径和文件必须存在于服务器上。而且,运行mysql服务器的凭据(用户名)必须具有对文件的读取权限。
你的 permission denied 错误提示mysql服务器无法读取该文件。

f8rj6qna

f8rj6qna2#

op有两个问题:
a) mysql没有从权限Angular 访问输入文件
b) 输入文件编码不正确。
一旦访问问题得到解决,并且输入文件编码被更正为utf8,加载就可以正常工作。

相关问题