mysql - 无法使用 LOAD DATA INFILE | -secure-file-priv 问题
问题描述
我已经尝试了许多不同的可能解决方案来解决这个问题,但似乎没有一个能帮我解决这个问题。
我在这里尝试过其他文章的解决方案,但似乎没有一个有效
我正在运行MySQL 8.0(此版本不支持 LOAD DATA LOCAL INFILE)
我试图通过 LOAD DATA INFILE 将 csv 文件中的数据加载到我的表中。当我运行脚本时,我收到此错误:
错误代码:1290。 MySQL 服务器正在使用 --secure-file-priv 选项运行,因此无法执行此语句
我的代码:
LOAD DATA INFILE 'customer.csv'
INTO TABLE customer
FIELDS TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
我试过以下
- 在 '' 中以不同格式放置文件的完整目录,包括尝试 / 和 \
- 从配置文件中删除 Secure-File-Priv
- 将目录更改为我桌面上的文件夹
- 将目录留空(Secure-File-Priv = "" {也尝试删除 ""})
- 我通过运行查询检查了目录,它说这是我在桌面上设置的位置
还有什么我可以尝试将数据加载到我的表中或删除 Secure File Priv 块的方法吗?
更新
这是当secure-file-priv为空时出现错误的代码:
LOAD DATA INFILE 'C:/users/user/desktop/college/advanced db/uploads/customer.csv'
INTO TABLE customer
FIELDS TERMINATED BY '|'
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
错误代码:29。找不到文件“C:\users\carl\desktop\college\advanced db\uploads\customer.csv”(OS errno 13 - 权限被拒绝)
解决方案
假设您使用的是 Windows 7 或更高版本:
- 在 windows 研究表中搜索“服务”(屏幕左下角)
- 在表中搜索Mysql服务并关闭
- 打开 my.ini 文件(我假设“C:\ProgramData\MySQL\my.ini”)
- 搜索 Secure-File-Priv 并分配“”。
- 通过“服务”或 Mysql 工作台重启进程
- 将 .csv 文件放入存在表的数据库目录(在本例中为“客户”),这是可能的路径:C:\ProgramData\MySQL\MySQL Server 8.0\Data\。
- 执行查询
推荐阅读
- android - 即使应用程序已从内存中删除,也可以监听传入的 SMS 消息
- javascript - 在 ReactJS 中以手风琴风格呈现无限数量的项目?
- probability - 在扑克中获得特定卡片的概率
- c# - 如何在 StartUp.cs 中为 .net core 3.1 打印进程名称
- laravel - Laravel 使用两个模型关系创建另一个模型对象
- typescript - NextJS & Typescript getInitialProps linting 错误(返回类型)
- r - 当我尝试网络抓取表格时,为什么会出现矩阵错误?
- php - 访问 PHP Guzzle Response 对象中的私有属性
- c - 查找给定数组中除 1 个整数之外的所有整数的最大和最小和
- akka - 在akka集群中关闭节点/成员的正确方法