如何插入BLOB和CLOB文件在MySQL?如何插入BLOB和CLOB文件在MySQL?(How t

2019-05-14 11:14发布

我想存储图像和.DOCX / .DOC,.PPTX / .PPT,用我的软件的前端.pdf文件。 我不知道如何实现这一点,如何将BLOB和CLOB文件插入到表。 请帮忙。

我使用的Kubuntu 11.04,MySQL5的,Qt的4.7.3。

Answer 1:

方法有两种:

1 -使用LOAD_FILE功能-

INSERT INTO table1 VALUES(1, LOAD_FILE('data.png'));

2 - 将文件作为十六进制字符串,例如 -

INSERT INTO table1 VALUES 
  (1, x'89504E470D0A1A0A0000000D494844520000001000000010080200000090916836000000017352474200AECE1CE90000000467414D410000B18F0BFC6105000000097048597300000EC300000EC301C76FA8640000001E49444154384F6350DAE843126220493550F1A80662426C349406472801006AC91F1040F796BD0000000049454E44AE426082');


Answer 2:

INSERT INTO MY_TABLE(id, blob_col) VALUES(1, LOAD_FILE('/full/path/to/file/myfile.png')

LOAD_FILE连接到它的许多条件。 从MySQL文档 :

LOAD_FILE(FILE_NAME)

读取该文件,并作为一个字符串返回文件内容。 要使用此功能,该文件必须位于服务器主机上,则必须指定完整路径名的文件,你必须具有FILE权限。 该文件必须由所有和它的尺寸小于max_allowed_pa​​cket个字节可读。 如果secure_file_priv系统变量设置为一个非空目录名,要加载的文件必须位于该目录中。

如果该文件不存在或无法读取,因为上述条件的一个不被满足,则函数返回NULL。

而且,也有在Linux中LOAD_FILE错误。 见http://bugs.mysql.com/bug.php?id=38403的错误,和MySQL的LOAD_FILE返回NULL的解决方法。 在Ubuntu 12.04中,MySQL 32年5月5日,这对我的作品:

  1. 复制文件到/ tmp
  2. 更改所有权转让给mysql用户chown mysql:mysql /tmp/yourfile
  3. 登录到MySQL作为MySQL的root用户,这样你确定你有FILE权限
  4. 运行您的插入语句


Answer 3:

或者你可以只使用MySQL工作台,选择该行,最后一行,插入一行没有一滴,然后只需点击右键并选择“负载值从文件”。



Answer 4:

INSERT INTO table1 VALUES(1, LOAD_FILE(data.png));

不会工作,但

INSERT INTO table1 VALUES(1, LOAD_FILE('data.png'));

应该(假设data.png在本地目录存在)



文章来源: How to insert BLOB and CLOB files in MySQL?
标签: mysql ubuntu qt4