【问题标题】:MySQL LOAD DATA INFILE "not found (Errcode: 13 - Permission denied)"MySQL LOAD DATA INFILE“未找到(错误代码:13 - 权限被拒绝)”
【发布时间】:2015-06-10 15:33:03
【问题描述】:

上周这是可行的,而今天却不行。我没有更改 php 文件。在此期间我所做的只是在我的 Ubuntu 15.04 服务器上运行 apt-get update。

我的 MySQL 语句是:

LOAD DATA INFILE "/var/www/html/uploads/TitleList.csv" INTO TABLE tblLSITitleList FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY "\"" IGNORE 5 LINES;

这会产生以下错误:

找不到文件“/var/www/html/uploads/TitleList.csv”(错误代码:13 - 权限被拒绝)

我尝试了以下解决方案(上周初我就是这样解决这个问题的: LOAD DATA INFILE Error Code : 13

我检查了apparmor,上传文件夹还在。

我也尝试过修改各种权限,包括 777,但没有任何帮助。

有什么聪明的建议吗?

【问题讨论】:

  • 我遇到了类似的问题,没有任何效果,然后不得不更改以赢得服务器

标签: php mysql permission-denied load-data-infile


【解决方案1】:

来自文档:

For security reasons, when reading text files located on the server, 
the files must either reside in the database directory or be 
readable by all

我建议将您的 .csv 文件复制到数据库目录,例如

cp TitleList.csv /var/lib/mysql/yourdbname/TitleList.csv

然后

LOAD DATA INFILE 'TitleList.csv' INTO etc ...

【讨论】:

    【解决方案2】:

    虽然可以将 CSV 复制到 mysql 数据目录中,但这并不是一个好的持续解决方案。如果您使用 SQL 命令行或代码,请在查询中包含 LOCAL 选项。

    • 例如:代替LOAD DATA INFILE 尝试LOAD DATA LOCAL INFILE

    如果您使用 cPanel 或 phpmyadmin 导入 CSV using LOAD DATA,请务必启用 Use LOCAL keyword。这在共享服务器环境中对我有用。

    这应该可以避免每次都必须将 CSV 复制到 MySQL 数据目录。

    【讨论】:

    • 这个解决方案对我有用。为了设置权限,我先执行了 chmod($fileName, 0777);理论上存在安全风险,但我在导入操作结束时删除了文件。
    【解决方案3】:

    就我而言,LOAD DATA INFILE 在第一个数据集上是成功的。 但是对于第二个数据集,我得到了这个 errcode 13。

    我做了什么(获胜用户),我按CTRL+ALT+DELETE,然后选择Start Task Manager,然后我转到processes 选项卡并选择Excel,然后按End Task

    然后再次尝试LOAD DATA INFILE,它成功了。

    注意: 在此之前,我尝试打开 CSV 文件只是为了检查数据集。 花了太长时间,因此,我在文件打开之前立即关闭了它。

    也许不完整的过程干扰了加载过程。

    我不确定是否使用 PHP,因为我只是使用 phpmyadmin 并使用 MySQL

    【讨论】:

      【解决方案4】:

      添加 LOCAL 关键字对我有用。我还确保该文件具有 READ 权限,因为我在 Ubuntu 中工作:

      LOAD DATA LOCAL INFILE '/path/to/file/name.csv'
          INTO TABLE 'table_name'
          FIELDS TERMINATED BY ','
          LINES TERMINATED BY '\n';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-19
        • 2017-04-04
        • 2013-01-25
        • 2016-04-04
        • 2016-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多