【问题标题】:LOAD DATA LOCAL INFILE forbidden after php / mariadb updatephp / mariadb更新后禁止加载数据本地INFILE
【发布时间】:2019-09-13 01:45:05
【问题描述】:

我知道以前有人问过这个问题,但我找不到任何可以提供帮助的新帖子。直到今天,LOAD DATA LOCAL INFILE 一直运行良好。除了更新 PHP 和(不确定,但我认为)MariaDB 之外,我没有更改任何内容。我现在正在运行 PHP 7.2.17MariaDB 10.1.38

现在我收到此错误: 警告:mysqli::query(): LOAD DATA LOCAL INFILE 禁止

我检查了我能找到的: - db 用户拥有所有权限,即使是 root 用户也会收到此错误 - 检查 my.cnf 中的条目 local-infile=1

Load 语句在 mysql 命令行中可以正常工作,但在 PHP 脚本中却不行。

这是我运行导入的方式:

define ('DB_USER', "db_user");
define ('DB_PASSWORD', "my_password");
define ('DB_DATABASE', "prosjekt");
define ('DB_HOST', "localhost");

$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);

我在最后一行得到错误 -> $mysqli->query($query);

$query = <<<eof
    LOAD DATA LOCAL INFILE '$fileName'
     INTO TABLE prosjekt
     FIELDS TERMINATED BY ','  ENCLOSED BY '"'
     LINES TERMINATED BY '\r'
    (prosjektnavn,prosjektstatus,prosjektbesk,oppdragsgiver,prosjektans,prosjektdelt,start,slutt,prosjektnr,prosjekttype,sortnr,ant_rapport,litt_link)
eof;

$mysqli->query($query);

所以我可以在 mysql 控制台中正常运行,但不能在 PHP 脚本中运行,并且它今天开始失败。任何想法如何解决它? 当我运行 SHOW VARIABLES; 我得到了这个,所以它应该可以工作吗?

local_infile 开启

【问题讨论】:

    标签: php mariadb load-data-infile


    【解决方案1】:

    我解决了这个问题,并为任何感兴趣的人解决。我读了this 的帖子,帮助了

    似乎 PHP 升级改变了我的 php.ini。我想我有一些关于保留配置或覆盖它的问题。不确定我的回答是否正确!

    由于这是一项 cron 工作,我需要在此处修复 php.ini:

    /etc/php/7.2/cli/php.ini

    取消注释或更改此行:

    mysqli.allow_local_infile = 开启

    如果您在相应的目录 /etc/php/7.2 -> /fpm /apache 中运行 php-fpm,您将对 php.ini 执行相同的操作

    【讨论】:

      【解决方案2】:

      我刚醒来,发现我的一个应用程序使用 php7.2 和 mysqli 做着完全相同的事情。

      当我检查 less /var/log/apt/history.log 时,我的 php7.2 似乎昨晚作为 Ubuntu 自动安全更新的一部分进行了升级。

      我的 local_infile 变量也已打开,但似乎没有工作。我解决了我的问题:

      mysqli_options($conn, MYSQLI_OPT_LOCAL_INFILE, true)
      

      【讨论】:

      • 这个解决方案是准备时必须设置的。
      猜你喜欢
      • 2016-07-29
      • 2019-09-18
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 1970-01-01
      相关资源
      最近更新 更多