【发布时间】:2016-08-05 21:11:48
【问题描述】:
使用 Ubuntu Server 14.04 x64 / PHP 5.5.9-1ubuntu4 (cli) w/ FPM / MySQL InnoDB 版本 5.5.35
我创建了一个 PHP 脚本,它从远程服务器下载文本文件,然后尝试使用 LOAD DATA LOCAL INFILE '/path/to/file.txt' INTO TABLE 测试将其导入由“\n”终止的字段。
我已经完成了修改php.ini文件的过程:
[MySQL]
; Allow accessing, from PHP's perspective, local files with LOAD DATA statements
; http://php.net/mysql.allow_local_infile
mysql.allow_local_infile = On
我已经修改了 my.cnf([mysql] 和 [mysqld] 条目):
local-infile=1
local-infile
我已经从终端运行 MySQL 然后发出:
SET GLOBAL local_infile = 'ON';
我已经手动启动和停止了 MySQL:
sudo /etc/init.d/mysql start --enable-local-infile
在这些命令中的每一个之后,我都可以运行 SHOW GLOBAL VARIABLES LIKE 'local_infile';,它总是说值是 ON。从 MySQL 提示符执行我的 LOAD DATA 命令没有任何问题,但是如果我尝试运行 LOAD DATA存储在 PHP 文件中时出错:
此 MySQL 版本不允许使用的命令
根据我的阅读,似乎有一些人建议使用“--with-mysql=/usr”重新编译 PHP,但这对我来说似乎是一种真正的大锤方法,也许我错了。我可以发出任何 MySQL 查询,但来自 PHP 文件的查询除外。我做错了什么?
【问题讨论】: