我想用mysql的 select .... into outfile...语句将mysql数据库中的表读到指定目录'/var/www/html/sts/result/'中,数据库提示不能创建/写文件,但是如果路径设置成'/tmp/' 或者/var/tmp/'是可以写的。请问这是不是数据库用户(mysql)在UNIX系统中权限的问题,如果是,如何更改此权限?

解决方案 »

  1.   

    把/var/www/html/sts/result/这个路径的写权限给mysql用户,用chmod来给权限
      

  2.   

    chmod -R mysql:mysql /var/www/html/sts/result/
      

  3.   

    chmod 语法不能这么写吧,里面应该不能带mysql:mysql你是想说chown吗? 我也试了一下,不行。
      

  4.   

    说错了
    chown   -R   mysql:mysql   /var/www/html/sts/result/
    或者chmod   a+x   /var/www/html/sts/result/
      

  5.   

    试了,还是不行。我想不是系统权限的问题,还是MYSQL的设置问题,因为我在Unix下切换到用户 mysql,然后再到目录/var/www/html/sts/result/ 创建文件是没有问题的,这说民mysql用户有对该文件夹写的权限,只是不知道为什么 select into outfile 语句不能写入这个文件夹。
      

  6.   

    贴出:
     ls -l /var/www/html/sts/ | grep result的结果。
      

  7.   

    drwxrwxrwx  8 root   root       4096 2007-11-28 20:31 result
      

  8.   

    已经很明显了。
    drwxrwxrwx     8   root       root               4096   2007-11-28   20:31   result 
      

  9.   

    drwxrwxrwx  8 root   root       4096 2007-11-28 20:31 result
      

  10.   

    很明显的意思就是result目录的权限已经是777了