mysql error 29_mysql ERROR 29 (HY000): File \'xxx.txt\' not found&

早2天重新装了系统,用的是ubuntu的,安装了mysql数据库

今天想把一个csv文件里面的数据导入到mysql里面去,但是一直导入不进去,报的错误是

ERROR 29 (HY000): File \'xxx.txt\' not found (Errcode: 13)

开始我以为是我写法有问题,语句如下

LOAD DATA INFILE '/home/cullen/area.csv'

INTO TABLE Area

CHARACTER SET utf8

FIELDS TERMINATED BY ',' ENCLOSED BY '"' ;

然后在网上找了一堆资料,在前面的基础上面加了个local

LOAD DATA LOCAL INFILE '/home/cullen/area.csv'

INTO TABLE Area

CHARACTER SET utf8

FIELDS TERMINATED BY ',' ENCLOSED BY '"' ;

这个时候报错更加离谱了说是什么输入的命令不适用我现在使用的mysql版本

ERROR 1148 (42000): The used command is not allowed with this MySQL version

然后我就去其他的网站找解决办法

That's the same thing for me.

However using LOCAL isn't a solution, it's just a bypass.

The problem can be resolved by configuring AppArmor, see this thread : http://stackoverflow.com/questions/2...t-into-outfile, or directly :

sudo vi /etc/apparmor.d/usr.sbin.mysqld

/usr/sbin/mysqld {

...

/var/log/mysql/ r,

/var/log/mysql/* rw,

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

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

/data/ r,

/data/* rw,

}

sudo /etc/init.d/apparmor reload

上面是解决办法 大意是用su的权限修改 /etc/apparmor.d/usr.sbin.mysqld这个文件

在文件里面加入红粗体字的内容

/usr/sbin/mysqld {

...

/var/log/mysql/ r,

/var/log/mysql/* rw,

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

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

/data/ r,

/data/* rw,

}

然后重新加载这个文件

sudo /etc/init.d/apparmor reload

问题出现的原因是没有data 的读写权限,把data加入读写的权限就可以了

ok 问题完美解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值