用mysqldump的-T参数备份时 报错 如下:
[*@mysql-test ~]$  sudo  mysqldump -uroot -pmysql -T /home/sunny/bak  DBA_DEMO TB_BRANCH --fields-enclosed-by='\' --fields-terminated-by=,mysqldump: Got error: 1: Can't create/write to file '/home/sunny/bak/TB_BRANCH.txt' (Errcode: 13) when executing 'SELECT INTO OUTFILE'查error 13 :
[root@mysql-test ~]# perror 13;
OS error code  13:  Permission denied到bak文件夹下查看 :
[*@*bak]$ ls -la
-rw-r--r--  1 root  root  2028 Sep  5 11:52 TB_BRANCH.sql
只有一个sql文件 没有TXT文件生成可用mysqldump的其他参数备份都可以成功 
用select into outfile 这种方式也可以成功导出文件
请教高手 指点 一二
感谢

解决方案 »

  1.   

    系统文件权限的问题。mysqldump 是用系统帐号执行的。而select .. outfile ..是mysql帐号执行的。修改权限或则 把/home/sunny/bak 改成/tmp/ 就没问题了。
      

  2.   

    /home/sunny/bak
    把这个目录改成777
      

  3.   

    在家目录下的bak文件夹 属性为777 owner 和group都是root 或者均为mysql 都不行 依旧报同样的错
    不过  在tmp目录下 可以直接导出;
    在mysql的数据目录下 需要修改属性为777 即可导出;
    感谢大家的指点.
      

  4.   

    修改777 太危险了。还不如直接把 
    /etc/init.d/apparmor stop
    这个服务关掉。或则修改
    vi /etc/apparmor.d/usr.sbin.mysqld
    /etc/init.d/apparmor restart
      

  5.   

    /etc下没有/apparmor.d/这个目录   /etc/init.d/下也没有 apparmor 这个文件 
    这个文件是做什么用的啊
    请高人赐教
    谢谢
      

  6.   

    在Ubuntu下 这个文件控制mysql访问目录权限的,没有的话表示没有安装,无视.
    看你系统 这个文件可能不在上面说的目录中.