Php LOAD\文件正在将NULL加载到BLOB中

Php LOAD\文件正在将NULL加载到BLOB中,php,mysql,ubuntu-14.04,Php,Mysql,Ubuntu 14.04,我构建了一个PHP应用程序,将驱动程序存储到BLOB中。然而,前几天停电了,MySQL数据库无法加载,所以我不得不删除MySQL服务器并重新安装它(但我将所有数据库都保存在/var/lib/MySQL中)。我之所以给你这个背景,是因为在停电之前,使用LOAD_文件将这些驱动程序文件加载到BLOB中是可行的。自从重新安装MySQL以来,情况发生了变化 在最初的设置中,我记得有同样的问题,它与3件事有关。首先,我必须授予文件全局权限,文件必须位于实际的服务器上(实际上是这样),并且需要禁用AppAr

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


在最初的设置中,我记得有同样的问题,它与3件事有关。首先,我必须授予文件全局权限,文件必须位于实际的服务器上(实际上是这样),并且需要禁用AppArmor MySQL配置文件。当我在这个Ubuntu 14.04机器上重新安装MySQL服务器时,我不得不禁用MySQL AppArmor配置文件。然后我又向前走了一步,因为我已经厌倦了处理AppArmor。但是,LOAD_文件仍在将NULL加载到blob中。不确定我需要从这里尝试什么?有谁有这方面的经验,想帮我检查一下我遗漏的东西吗

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

以下文件逐步明确指出了这些问题。比含糊不清的MySQL文档要好得多


我不确定上面的链接是否有用。我已经尝试了文档中所述的一切。这个PHP应用程序显然归“www-data:www-data”所有,并且创建的文件具有与-rw-r--r--相同的所有权。这以前不是问题,改变权利似乎没有什么不同。这是我从上面的链接中看到的唯一有帮助的东西。您没有看到关于
max\u allowed\u数据包
secure\u file\u priv
设置的部分吗?拜托,你只需要读两段。文档的这一部分是规范的、正式的、完整的参考资料,您需要做什么才能使
LOAD_FILE
按预期工作。所以我不明白你为什么认为它没有“帮助”。@e4c5:这通常不是坏建议,但它是相当片面的。它没有提到将部分数据分离到另一个位置的任何不利之处。这意味着您不能再简单地使用单个工具备份/恢复您的数据库,这意味着HA的实现变得更加复杂,它可能存在完整性/事务性问题等。它不是“模糊的”;此要求在
加载\u文件
的第一段说明中有明确说明。