首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql通用日志检索BLOB内容

Mysql通用日志检索BLOB内容
EN

Stack Overflow用户
提问于 2020-06-25 21:51:24
回答 2查看 858关注 0票数 0

Mysql :5.7

总日志:1

log_output :表

我编写了一些代码,使用java将图像存储在表(tbl_attachment_mst).的blob列中。我的常规日志设置是打开的,并被配置为写入“table”。

每当我向tbl_attachment_mst添加图像时,mysql都会使用_binary(“一些不可读字符不确定这是什么”)将其记录在mysql.general_log表中。

我无意中丢失了表tbl_attachment_mst的内容。是否可以从mysql.generaL_log表中恢复数据??

在尝试执行存储在mysql.general_log中的查询时,我想我对字符集有一些问题。

(来自评论)

代码语言:javascript
复制
CREATE TABLE tbl_attachment_mst (
    attachment_id int(11) NOT NULL AUTO_INCREMENT, 
    file_name varchar(200) DEFAULT NULL, 
    created_date datetime DEFAULT NULL, 
    activate_flag tinyint(4) DEFAULT NULL, 
    file_id int(11) DEFAULT NULL, 
    type varchar(300) DEFAULT NULL, 
    attachment_asblob longblob, 
    PRIMARY KEY (attachment_id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

insert into tbl_attachment_mst values
     (default,'test.jpg',sysdate(),1,1,'Type',
      _binary('some characters here')) 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-29 17:08:22

使用下面的一组查询,我能够获得在特定时间插入到数据库中的确切数据……

代码语言:javascript
复制
SELECT argument INTO @sql FROM mysql.general_log limit 1;    
PREPARE sql_query FROM @sql;    
EXECUTE sql_query;

这些查询会将数据插入到tbl_attachment_mst中.

票数 0
EN

Stack Overflow用户

发布于 2020-06-28 23:12:13

快点抓住它。我怀疑general_log,作为一张桌子,在某种程度上会很快被冲红。

它就像一个表一样工作,所以SELECTs可以工作。但是,除非关闭了常规日志,否则SELECTs会进入常规日志。

建议执行SELECT ... HEX(col) ...以避免不可打印的字符。

请提供更多的细节,以便我可以尝试模拟,看看什么是最好的。

代码语言:javascript
复制
SHOW CREATE TABLE
An approximation of the INSERT statement (or whatever was involved)

如果抓取的十六进制是有用的,您可以使用这样的方法来逆转这些步骤:

代码语言:javascript
复制
INSERT ... VALUES (...  UNHEX(hex_string) ... )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62584872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档