任何网络用户如何安装或更改 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_packet 字节。如果 secure_file_priv 系统变量 设置为非空目录名,要加载的文件必须是 位于该目录中。 (在 MySQL 8.0.17 之前,该文件必须是 所有人都可读,而不仅仅是服务器可读。)
如果文件不存在或无法读取,因为其中一个 前面的条件不满足,函数返回NULL。
【讨论】:
以上是关于任何网络用户如何安装或更改 MySQL 以使用函数“load_file”?的主要内容,如果未能解决你的问题,请参考以下文章