当前位置: 首页 > 知识库问答 >
问题:

MariaDB插入斑点图像

施飞昂
2023-03-14

我想做什么?

  • 我想使用命令行插入图片到MariaDB数据库,使用LOAD_FILE功能。

发生了什么?

  • 我总是得到一个NULL返回。
  • 我不想要这样的解决方案:这是糟糕的风格,到目前为止我还没有看到过-尝试存储完整的路径!我想将此图片存储在这个数据库中,而不是路径中。

系统

>

ArchLinux 4.7.2-1-ARCH

一张叫做“测试”的照片。jpg(817KB)位于/home/user/Blob/Test下。jpg/tmp/Test。jpg甚至在/var/lib(mysql/images/Test.jpg

这张图片属于用户和mysql组,拥有我能想象到的所有权限

-rwxrwxrwx  1 mysql mysql 836508 20. Feb 2016  Test.jpg

数据库

我创建了一个名为Blotest的数据库,其中包含一个名为Test with a Blob的表和一个Longblob变量。

CREATE TABLE Test (id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,longblobimg LONGBLOB NOT NULL, blobimg BLOB NOT NULL, PRIMARY KEY(id));

+-------------+------------------+------+-----+---------+----------------+
| Field       | Type             | Null | Key | Default | Extra          |
+-------------+------------------+------+-----+---------+----------------+
| id          | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| longblobimg | longblob         | NO   |     | NULL    |                |
| blobimg     | blob             | NO   |     | NULL    |                |
+-------------+------------------+------+-----+---------+----------------+

插入语句

(在本例中使用/home/user/directory)

INSERT INTO Test VALUES (1, LOAD_FILE('/home/user/Blob/Test.jpg'), LOAD_FILE('/home/user/Blob/Test.jpg'));

解决这个问题的方法

我按照链接MySQL LOAD_FILE()中的说明加载空值

  • 我对父目录有执行权限

解决?

我不知道这是MariaDB中的一个错误,还是我是唯一一个有这个问题的人。再次指出这一点:我想将图片存储在这个数据库中。我不想存储路径。这是一个实验,我必须将图片存储在数据库中。

如果有人能帮我解决这个问题,那就太棒了!

共有1个答案

闾丘德业
2023-03-14

LOAD_FILE()仅当文件位于数据库服务器上时有效。如果服务器与文件位于同一系统上,那么加载它应该不会有问题。如果是这样,我建议打开一个错误报告,说明错误报告不足。

通常连接器提供将二进制数据加载到数据库中的方法。例如,MariaDB C连接器提供了mysql_stmt_send_long_data

另一个选项是在客户端将数据转换为非二进制编码(例如base64或十六进制),并在服务器上对其进行解码(base64带有FROM_base64和hex带有UNHEX)。

 类似资料:
  • 在MariaDB中,语句用于在选定的表中插入数据。 语法1: 语法2: 语法3: 也可以在条件下使用它。 注意:在MariaDB表中插入记录时,必须为每个列提供一个值。 如果列允许值,则只以省略此列。 1. 插入一行示例 让我们向表中插入一些数据。如果还没有创建表,请参考: http://www.yiibai.com/mariadb/mariadb-create-table.html 执行上面插入

  • 我尝试在我的DB中更新一个表“image”并插入blob类型。 ImageClass: Hibernate用户映射: 利布: 错误:

  • 问题内容: 对于跨进程的数据通信,我打算使用Redis列表。生产者推送到列表,而一组使用者使用BRPOP消费列表内容。 为了限制列表的大小无限增长,我想将列表大小限制为固定值(例如1万个项目)。我很惊讶地没有找到像BLPUSH或BRPUSH这样的等效命令。这是Redis员工故意遗漏的吗? 因此,我假设我必须在推送之前使用Watch / multi创建一个Txn来检查列表大小。这是正确的方法还是可用

  • 本文向大家介绍azure-webjobs 斑点触发,包括了azure-webjobs 斑点触发的使用技巧和注意事项,需要的朋友参考一下 示例 修改Azure存储Blob时触发的一个简单函数示例:            

  • 主要内容:将图像插入PDF文档在前一章中,我们已经学习如何从现有的PDF文档中提取文本。 在本章中,将讨论如何将图像插入PDF文档。 将图像插入PDF文档 分别使用类的以及类的方法将图像插入到PDF文档中。 以下是从现有PDF文档中提取文本的步骤。 第1步:加载现有的PDF文档 使用类的静态方法加载现有的PDF文档。 此方法接受一个文件对象作为参数,因为这是一个静态方法,可以使用类名称调用它,如下所示。 第2步:检索页面 在P

  • 好的,我对Java非常、非常陌生,而且是自学成才的,所以不要拿我糟糕的编码开玩笑;)我在玩弄JavaFX,试图将图像插入到边框窗格布局中。 这是控制器中的方法,我正在使用它来显示图像,但我无法让文件路径工作。它目前有“/图像/BrownBear.jpg”作为文件路径,但我尝试了相对路径- com/jaimependelbury/哺乳类动物/images/brownBear.jpg 完整的路径和中间