开发者社区> 问答> 正文

LOAD DATA INFILE错误代码:13?mysql

在我的远程MySQL中,当我尝试执行此查询时,我得到的是MySQL错误代码:13。

查询-

LOAD DATA INFILE '/httpdocs/.../.../testFile.csv' INTO TABLE table_temp FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r \n' (sku, qty); 错误代码 : 13 Can't get stat of '/httpdocs/.../.../testFile.csv' (Errcode: 2)

一个。数据库用户登录名具有所有授予特权。

CREATE USER 'userName'@'%' IDENTIFIED BY '************';

GRANT ALL PRIVILEGES ON * . * TO 'userName'@'%' IDENTIFIED BY '************' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

GRANT ALL PRIVILEGES ON userName\_% . * TO 'userName'@'%'; b。我还使用FTP工具将文件和文件夹权限设置为chmod 777(rwxrwxrwx)

展开
收起
保持可爱mmm 2020-05-17 21:01:15 1152 0
1 条回答
写回答
取消 提交回答
  • 我知道这篇文章很旧,但是仍然出现在搜索结果中。我无法在线找到该问题的解决方案,所以最终我自己弄清楚了。如果您使用的是Ubuntu,则存在一个名为“ Apparmor”的程序,该程序阻止MySQL查看该文件。如果希望MySQL能够从“ tmp”目录中读取文件,则需要执行以下操作:

    sudo vim /etc/apparmor.d/usr.sbin.mysqld 进入文件后,您将看到一堆MySQL可以使用的目录。将行添加/tmp/** rwk到文件中(我不确定它在哪里重要,但这是我放置它的示例):

    /etc/mysql/*.pem r,

    /etc/mysql/conf.d/ r,

    /etc/mysql/conf.d/* r,

    /etc/mysql/*.cnf r,

    /usr/lib/mysql/plugin/ r,

    /usr/lib/mysql/plugin/.so mr,

    /usr/sbin/mysqld mr,

    /usr/share/mysql/** r,

    /var/log/mysql.log rw,

    /var/log/mysql.err rw,

    /var/lib/mysql/ r,

    /var/lib/mysql/** rwk,

    /tmp/** rwk,

    /var/log/mysql/ r,

    /var/log/mysql/* rw,

    /var/run/mysqld/mysqld.pid w,

    /var/run/mysqld/mysqld.sock w,

    /run/mysqld/mysqld.pid w,

    /run/mysqld/mysqld.sock w, 现在,您需要做的就是重新加载Apparmor:

    sudo /etc/init.d/apparmor reload 注意我使用了“ vim”,但是用您喜欢的文本编辑器代替它就是您知道如何使用。来源:stack overflow

    2020-05-17 21:07:40
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像