【问题标题】:Can't create/write to file MYSQL to directory different of /var/tmp无法创建/写入文件 MYSQL 到与 /var/tmp 不同的目录
【发布时间】:2020-08-13 07:49:43
【问题描述】:

服务器版本:5.7.29-0ubuntu0.18.04.1 (Ubuntu)

我正在尝试将输出保存到文件:/var/www/dir/file.csv

它给了我一个错误:无法创建/写入文件“/var/www/dir/file.csv”(错误代码:13 - 权限被拒绝)

是PHP脚本,通过浏览器执行。

权限:/dir/ (ls -al)

drwxrwxrwx 2 mysql root 4096 Apr 29 10:40 dir

【问题讨论】:

    标签: php mysql permissions


    【解决方案1】:

    我想你已经在你的 MySQL-Server 中设置了这个选项:

    secure_file_priv

    【讨论】:

    • 是的,它是:secure-file-priv = "" 但是如果我删除它,我会收到错误:The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
    【解决方案2】:

    我发现上传文件的默认目录是:/var/lib/mysql-files/

    SHOW VARIABLES LIKE "secure_file_priv";

    并重写脚本以写入该目录。

    【讨论】:

    • 是的,最好的解决方案是使用这个路径。不建议禁用此规则
    【解决方案3】:

    如上所述,您需要调整 secure_file_priv 变量,但您还需要调整 Ubuntu(如果是 Fedora/CentOS/RedHat 则为 SELinux)上的 AppArmor 配置,以允许您写入已经存在的目录之外的目录允许。

    【讨论】:

      猜你喜欢
      • 2013-12-07
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 2018-12-13
      • 2011-12-28
      • 1970-01-01
      相关资源
      最近更新 更多