binlog日志内容加密查看

有一台数据库的日志格式是ROW格式,在查看日志文件内容时发现具体的语句操作都被加密了,如下:


BINLOG ' dnPPXBMBAAAASgAAADs6BQAAAKYAAAAAAAEABG1hbGwAEm1hbGxfaW5mb19vcmRlcl9mbQAHCA8P CA8SCAf9Av0C/QIAfuDuWWY= dnPPXCABAAAAVAAAAI86BQAAAKYAAAAAAAAAAgAH/+Bg/gAAAAAAAAwAOS0yMDE4MDAwMDAzAQAx TwMAAAAAAAANADA3MDQyMDg4Mzc1NzVzo0YK dnPPXB4BAAAAYQAAAPA6BQAAAKYAAAAAAAEAAgAH/4Bg/gAAAAAAAAwAOS0yMDE4MDAwMDAzAQAy TwMAAAAAAAANADA3MDQyMDg4Mzc1NzWZowx5F9VMAgAAAAAAGu67Fg== '/*!*/; # at 342768

这样在查看和恢复数据的时候很难找到具体的数据点,其实sql真实语句就在这里这里,只不过是经过64位编码转换后的内容,mysqlbinlog指令有参数可以解码查看。

mysqlbinlog --no-defaults --base64-output=decode-rows -vv mysqlbin.000022 | more

原本加密内容显示日志内容如下:

### INSERT INTO `sdsd`.`sdsd_venue_collect`
### SET
###   @1=111 /* LONGINT meta=0 nullable=0 is_null=0 */
###   @2=29359 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @3=3 /* LONGINT meta=0 nullable=1 is_null=0 */
###   @4='2019-05-06 07:13:48' /* DATETIME(0) meta=0 nullable=1 is_null=0 */
###   @5=NULL /* LONGINT meta=0 nullable=1 is_null=1 */
  • –base64-ouput=decode-rows 代表解码
  • -v 代表换行显示这些语句,如果没有-v 你依然看不到具体的语句
  • –no-defaults 跳过字符集的错误问题,不加该参数会报mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4'错误

关于解码的格式可以执行 :mysqlbinlog --no-defaults --help 查看指令帮助

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注