在我的远程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)
我知道这篇文章很旧,但是仍然出现在搜索结果中。我无法在线找到该问题的解决方案,所以最终我自己弄清楚了。如果您使用的是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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。