我正在尝试在MySQL中使用LOAD DATA LOCAL INFILE命令,但我在PHP / Joomla中不断收到错误说明:此MySQL版本不允许使用该命令
我花了很长时间用谷歌搜索,但我见过的唯一建议是将local-infile = 1添加到我的my.cnf文件中(我已经在[client],[mysql]中完成了,和[mysqld])。
此外,如果我从命令行从我的Apache服务器连接到MySQL服务器(因此不使用PHP),我可以运行LOAD DATA LOCAL而不会出现问题(因此它不能作为权限)。
我还检查了php.ini,果然,mysqli.allow_local_infile设置为'On'。
我在这里遗漏了什么吗? 您是否必须在Joomla中做一些特别的工作才能使其正常工作?
答案 0 :(得分:4)
我刚刚回答了一个类似的问题here,也许它有所帮助:
从MySQL 5.0升级到5.5后,我发现在PHP中创建连接时,我突然必须启用LOCAL INFILE。
使用mysql:
mysql_connect(server,user,code,false,128); // 128 enables LOCAL INFILE
mysql_select_db(database);
使用mysqli:
$conn = mysqli_init();
mysqli_options($conn, MYSQLI_OPT_LOCAL_INFILE, true);
mysqli_real_connect($conn,server,user,code,database);
答案 1 :(得分:1)
我遇到了同样的问题,在我的情况下,Joomla用户缺少root权限;给J用户提供完全权限解决了它,然后我的组件用于分发,所以我改为使用标准.sql文件并手动解析/创建它们。希望这会有所帮助。