首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将CSV加载到MySQL - (OS 13 -权限被拒绝)

无法将CSV加载到MySQL - (OS 13 -权限被拒绝)
EN

Stack Overflow用户
提问于 2019-04-10 05:57:27
回答 2查看 6.3K关注 0票数 1

问题

我想上传一个.csv文件到MySQL码头。

得到错误:File 'xx.csv' not found (OS errno 13 - Permission denied)

我的文件

代码语言:javascript
复制
FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD password

COPY ./sql-scripts/ /docker-entrypoint-initdb.d/
COPY ./data /var/lib/mysql/
COPY my.cnf /etc/mysql/

EXPOSE 3306

My.cnf

代码语言:javascript
复制
[mysqld]
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
datadir     = /var/lib/mysql


secure-file-priv = ""
local-infile = 1 
symbolic-links=0
!includedir /etc/mysql/conf.d/

我以根用户身份连接到MySQL:

代码语言:javascript
复制
docker exec -it mysql_1 mysql -uroot -proot_password

然后执行SQL命令:

代码语言:javascript
复制
CREATE DATABASE data;
USE data;
CREATE TABLE IF NOT EXISTS `pregnant_mapping` (
    `label` varchar(255),
    `Pregnancy` varchar(255) PRIMARY KEY
);
LOAD DATA INFILE '/var/lib/mysql/pregnant_mapping.csv' INTO TABLE pregnant_mapping;

我试过的

尝试在命令行中添加LOCAL,但在我的MySQL版本中不起作用;得到了错误:ERROR 1148 (42000): The used command is not allowed with this MySQL version

谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-10 08:26:27

如果您将.csv文件放置在/var/lib/mysql目录中,下面的语句应该可以工作。

将数据INFILE‘/var/lib/mysql/ mst_result’加载到由‘终止于’的表字段中,‘’可选地以‘\n’结尾的“”行括起来;

票数 0
EN

Stack Overflow用户

发布于 2021-01-27 10:38:21

看到这个问题有点晚了,但也许答案可能会对某人有所帮助:

平台: Linux (CENTOS 8)

  1. In /etc/my.cnf.d/mysql-server.cnf,set

mysqld局部-infile=1

  1. 重新启动MySQL-demon

服务mysqld重新启动

  1. 使用mysqlimport并指定允许本地infile:

mysqlimport --用户=${user}-password=${password}-local=TRUE -d ${database} your_file

向mysqlimport添加其他参数,以防需要它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55605623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档