繁体   English   中英

不允许在文件中加载数据MariaDB

[英]load data infile is not allowed MariaDB

我创建了一个PHP脚本,用于将CSV文件中的帖子导入WordPress网站。

为此,我首先将帖子批量导入WP网站数据库的表中,然后PHP脚本创建帖子。 我使用的批量插入MYSQL查询如下:

load data local infile '/var/www/vhosts/sitenamehere.test/test.csv' into table test_table character set latin1 fields terminated by ';' lines terminated by '\r\n' ignore 1 lines;

当我从服务器运行脚本时,出现以下错误:

“此MariaDB版本不允许在查询加载数据本地infile中使用所使用的命令...”

仅当我从服务器执行脚本时才会出现问题,实际上,如果我从phpMyAdmin运行相同的查询,则可以导入文件。

由于我的脚本不仅可以导入,还可以更新帖子,因此其目的是创建cron作业,以便每天执行多次脚本。 显然,如果我不断遇到相同的错误,这是不可能的。

我尝试添加:

  • my.cnf [client][mysqld]部分下的local-infile=1
  • my.cnf[mysql]部分下的mysql.allow_local_infile=On
  • php.ini[MySQLi]部分下的mysql.allow_local_infile=On行位于/opt/plesk/php/7.1/etc

但是没有任何帮助。 有任何想法吗?

https://mariadb.com/kb/zh/library/load-data-infile/上的指南说

如果将local_infile系统变量设置为0,则尝试执行LOAD DATA LOCAL的操作将失败,并显示一条错误消息。

最好的选择是更改正在使用的my.ini文件。

而且,使用的数据库用户需要FILE特权。

您必须添加AllowLoadLocalInfile=true; 要加载本地文件时,将其连接到MySQL / MariaDB服务器连接字符串。

如果使用类似LOAD LOCAL INFILE命令的命令,则在命令本身中添加--local_infile=1 ,它应该可以正常工作。

在这两个服务器的最新版本中,默认情况下禁用此功能,仅应在必要时启用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM