任何网络用户如何安装或更改 MySQL 以使用函数“load_file”?

Posted

技术标签:

【中文标题】任何网络用户如何安装或更改 MySQL 以使用函数“load_file”?【英文标题】:How to install or change MySQL to use function 'load_file' by any network user? 【发布时间】:2020-01-14 15:56:47 【问题描述】:

目标

当前的目标是将来自任何网络用户的文件附件作为BLOB 数据插入mysql 数据库。这可以来自任何文件夹 - 例如;桌面。

问题

这是唯一允许在 MySQL 中正确使用 load_file() 函数的路径 ---C:/ProgramData/MySQL/MySQL Server 8.0/Uploads---。如果我在这里尝试使用此路径:---C:/Users/eduards/Desktop--- 值显示为null

有效的 MySQL 查询

insert into document_control (fileattachment) values (load_file('C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/test.docx'));

值显示为BLOB

不工作的 MySQL 查询

insert into document_control (fileattachment) values (load_file('C:/Users/eduards/Desktop/test.docx'));

值显示为null

问题

如果我需要卸载 MySQL - 我很乐意这样做。但是我在哪里可以允许或启用任何路径中的任何文件附件作为BLOB 而不是null - 插入 MySQL 数据库?

【问题讨论】:

【参考方案1】:

根据documentation:

读取文件并将文件内容作为字符串返回。要使用这个 函数,文件必须位于服务器主机上,必须 指定文件的完整路径名,并且您必须具有 FILE 特权。该文件必须可由服务器读取,并且其大小更小 超过 max_allowed_pa​​cket 字节。如果 secure_file_priv 系统变量 设置为非空目录名,要加载的文件必须是 位于该目录中。 (在 MySQL 8.0.17 之前,该文件必须是 所有人都可读,而不仅仅是服务器可读。)

如果文件不存在或无法读取,因为其中一个 前面的条件不满足,函数返回NULL。

【讨论】:

以上是关于任何网络用户如何安装或更改 MySQL 以使用函数“load_file”?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:如何重置或更改 MySQL root 密码?

如何更改架构名称?

网络推送通知的权限更改是不是有任何回调?

phpmyadmin的只读安装

尝试连接到MySQL服务器:建立与SQL Server的连接时发生与网络相关或特定于实例的错误

如何更改 OpenSuSE 13.1 上的默认 MySQL 用户