LOAD_FILE 正在将 NULL 加载到 BLOB

LOAD_FILE is loading NULL into BLOB

我有一个我构建的 PHP 应用程序,它将驱动程序存储到 BLOB 中。然而,前几天停电了,MySQL 数据库无法加载,所以我不得不删除 MySQL-server 并重新安装它(但我保留了 /var/lib/mysql 中的所有数据库).我给你这个背景是因为使用 LOAD_FILE 将这些驱动程序文件加载到 BLOB 在断电之前工作。自从重新安装 MySQL 以来,情况发生了变化。

在最初的设置中,我记得有同样的问题,它与 3 件事有关。首先,我必须授予 FILE 全局权限,该文件需要在实际服务器上(它是),并且需要禁用 AppArmor MySQL 配置文件。当我在这台 Ubuntu 14.04 机器上重新安装 MySQL-server 时,我不得不禁用 MySQL AppArmor 配置文件。然后我更进一步,删除了 AppArmor,因为我厌倦了处理它。但是,LOAD_FILE 仍在将 NULL 加载到 blob 中。不确定我需要从这里尝试什么?任何人都有这方面的经验并想帮助我仔细检查我遗漏的东西吗?

所以从我以前的MySQL版本(在停电期间损坏)和我在停电后安装的新版本(mySQL版本5.5.53)看来, 'secure_file_priv' 现在默认设置为“/var/lib/mysql-files”,这可以防止从不同位置加载文件。为了修复,我将 secure_file_priv = "" 添加到 /etc/mysql/my.cnf 的 [mysqld] 部分并重新启动 MySQL.

下面的文档一步步把问题点清楚了。比模糊的 MySQL 文档好多了。

http://pastebin.com/Dvsdxh9Y https://superuser.com/questions/1088512/how-to-disable-secure-file-priv-mysql-ubuntu