红联Linux门户
Linux帮助

提示错误mysqldump: Got error: 1: Can't create/write to file

发布时间:2017-02-13 14:46:54来源:linux网站作者:saife
问题
需要将数据已csv格式导出到/data/export/路径下,遇到问题:
mysqldump: Got error: 1: Can’t create/write to file ‘/data/export/test.txt’ (Errcode: 13) when executing ‘SELECT INTO OUTFILE’
 
分析
环境
OS: Ubuntu 14.04 LTS
MySQL: 5.6.x #datadir=/data/mysql
通过mysqldump -T 导出的数据是两个文件,数据表结构我test.sql,数据文件为test.txt。导出过程中,test.sql创建成功了,但是test.txt文件提示不能写入,实际也没有创建。
于是,检查权限,将/data/export修改为mysql:mysql还是报错。
这是因为ubuntu安全机制的原故。apparmor对于mysqld默认没有配置路径/data/export/的访问权限。这个导出,test.sql是mysqldump来完成的,成功创建,但是,test.txt是通过mysqld的select into outfile来完成,所以因为没有权限,无法创建。
 
解决方案
1.修改/etc/apparmor.d/mysqld
vim /etc/apparmor.d/mysqld
2.增加
/data/export/** rw,
3.重新载入配置
/etc/init.d/apparmor reload
4.再次导出即可。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/28377.html