5

我正在尝试将图像插入我的 MySQL 服务器。我做了一些研究,看起来最好的方法是通过LOAD_FILE(). 但是,LOAD_FILE()始终返回 null。我知道有4个条件LOAD_FILE()

  1. 该文件必须位于服务器主机上
  2. 您必须指定文件的完整路径名,并且您必须具有 FILE 权限。
  3. 该文件必须可供所有人读取,并且其大小小于 max_allowed_pa​​cket 字节。
  4. 如果将secure_file_priv 系统变量设置为非空目录名,则要加载的文件必须位于该目录中。

我目前正在使用:

select LOAD_FILE('/Users/pricedb/Desktop/FolderName/imageName');

它返回 NULL

我已确认已将所有权限授予用户。文件必须位于服务器主机上是什么意思?服务器正在我的本地计算机上运行,​​并且文件位于那里,这是否意味着我对此很擅长?

任何建议将不胜感激,我不知道为什么它没有返回值。

4

5 回答 5

0

这是我在 Windows 7 上的命令:

select load_file("C:/Program Files (x86)/MySQL/MySQL Workbench CE 6.0.7/images/hieuImages/a.jpg");

它奏效了!您可能会尝试将图像复制到该目录并在 mysql 中再次选择。

于 2014-05-01T02:14:38.503 回答
0

“文件”是一种管理权限。当您说已授予所有权限时,这是否也包括全局管理权限?

这是http://dev.mysql.com/doc/refman/5.1/en/grant.html#grant-global-privileges的语法,但我发现“MySQL Workbench”GUI 更有帮助。

也检查操作系统文件权限。

于 2015-01-07T21:57:09.097 回答
0
  1. 显示像“secure_file_priv”这样的变量;
  2. 在此目录中加载文件。
  3. 选择加载文件('directory_from_1');
于 2021-06-23T08:24:59.560 回答
0

我遇到过同样的问题。

发现要加载的文件需要位于 mysql/mariadb 有权读取它的文件夹位置。它可以配置,但数据文件夹已经具有访问权限。

就我而言,我将文件复制到数据文件夹: C:\Program Files\MariaDB 10.3\data 而不是我只是用完整路径调用它:

select load_file('C:\\Program Files\\MariaDB 10.3\\data\\test.txt');
于 2018-08-08T11:13:05.497 回答
0

使用 MySQL 工作台 8.0:

  1. 在可以看到行和列的结果网格面板中,右键单击将保存 BLOB 值的单元格(当前显示为NULL)。
  2. 在出现的上下文菜单中,选择第一项:Open Value in Editor
  3. 在左下角,有两个按钮。点击:加载...
  4. 浏览到您的图像文件。
  5. 二进制选项卡填充了图像的二进制数据。
  6. 点击:应用。您将再次返回到Result Grid面板。通知NULL已被替换BLOB
  7. 右键单击并再次BLOB选择在编辑器中打开值。
  8. 您会在顶部找到一个新选项卡:Image。在那里您可以预览刚刚添加的图像。

问候!

于 2020-09-27T08:05:13.813 回答