为了账号安全,请及时绑定邮箱和手机立即绑定

php / mariadb更新后禁止加载数据本地文件

php / mariadb更新后禁止加载数据本地文件

PHP
慕妹3242003 2021-05-07 10:09:50
我知道以前曾有人问过这个问题,但是我找不到任何新的帖子可能会对您有所帮助。直到今天,LOAD DATA LOCAL INFILE一直运行良好。除了为PHP和(不确定,但我认为)MariaDB运行了更新之外,我没有做任何其他更改。我现在正在运行PHP 7.2.17和MariaDB 10.1.38现在我收到此错误: 警告:mysqli :: query():禁止加载数据本地文件我检查了我能找到的内容:-数据库用户具有所有权限,即使root用户也遇到此错误-检查my.cnf中是否有条目local-infile = 1在mysql命令行中,load语句工作正常,但在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时;我明白了,所以它应该工作吗?
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

我解决了这个问题,并为感兴趣的任何人解决了。我阅读了这篇文章,对您有所帮助

看来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也会执行相同的操作


查看完整回答
反对 回复 2021-05-14
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

我只是唤醒了我的一个应用程序,使用php7.2和mysqli做着完全相同的事情。

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

我的local_infile变量也处于启用状态,但似乎没有起作用。我通过以下方式解决了我的问题:

mysqli_options($conn, MYSQLI_OPT_LOCAL_INFILE, true)


查看完整回答
反对 回复 2021-05-14
  • 2 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信