当前位置:首页 > Mysql教程 > 列表

mysql错误:ERROR 29 (HY000): File 'xxx.txt' not found (Errcode: 13)

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-08 13:57:25 浏览: 评论:0 

有朋友使用mysql时可能会碰到mysql错误:ERROR 29 (HY000): File \'xxx.txt\' not found (Errcode: 13)提示,下面我来给大家介绍解决办法。

突然遇到mysql错误:ERROR 29 (HY000): File '/var/www/xiaoyou/static/upload/import/20130427105733.csv.txt' not found (Errcode: 13)

感觉特奇怪,因为程序在本地很ok,语句如下:

  1. LOAD DATA INFILE '/var/www/upload/abc.csv.txt' INTO TABLE alumni_import FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED by ' ' IGNORE 1 lines (field1,field2,...); 

我一直因为是权限问题,但是当我把目录和文件权限都chmod为777后还是出错,google了后发现:

  1. Recent Ubuntu Server Editions (such as 10.04) ship with AppArmor and MySQL's profile might be in enforcing mode by default. You can check this by executing  
  2. sudo aa-status 
  3.  like so: 
  4.  
  5.  
  6. # sudo aa-status 5 profiles are loaded.5 profiles are in enforce mode./usr/lib/connman/scripts/dhclient-script /sbin/dhclient3 /usr/sbin/tcpdump /usr/lib/NetworkManager/nm-dhcp-client.action /usr/sbin/mysqld 0 profiles are in complain mode.1 processes have profiles defined.1 processes are in enforce mode :/usr/sbin/mysqld (1089)0 processes are in complain mode. 
  7.  
  8. If mysqld is included in enforce mode, then it is the one probably denying the write. Entries would also be written in  
  9. /var/log/messages 
  10.  when AppArmor blocks the writes/accesses. What you can do is edit 
  11. /etc/apparmor.d/usr.sbin.mysqld 
  12.  and add  
  13. /data/ 
  14.  and  
  15. /data/* 
  16.  near the bottom like so: 
  17.  
  18. ... 
  19. /usr/sbin/mysqld { 
  20.     ... 
  21.     /var/log/mysql/ r, 
  22.     /var/log/mysql/* rw, 
  23.     /var/run/mysqld/mysqld.pid w, 
  24.     /var/run/mysqld/mysqld.sock w, 
  25.     /data/ r, 
  26.     /data/* rw, 
  27.  
  28. And then make AppArmor reload the profiles. 
  29. --phpfensi.com 
  30.  
  31. # sudo /etc/init.d/apparmor reload 

大体内容就是,mysqld强制编码了,文件没有写入权限,于是我把该文件目录也加到mysqld(/etc/apparmor.d/usr.sbin.mysqld这个文件的底部,如上粗体部分:

  1. /var/www/upload/import/ r, 
  2. /var/www/upload/import/* rw,

Tags: mysql错误 ERROR29 Errcode:13

分享到: