文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

从MySQL数据库binlog中读取数据

2023-09-03 14:02

关注

1. 执行SQL查看Binlog日志文件名:

show binary logs;

举个例子
在这里插入图片描述

2.去官网(https://dev.mysql.com/downloads/installer/)下载一个MySQL客户端

导出原始格式的binlog
进入mysql/bin目录

 mysqlbinlog -u{数据库用户名} -p{数据库密码} -h{数据库地址} --read-from-remote-server --raw mysql-bin.XXX

举个例子
mysqlbinlog -u{数据库用户名} -p{数据库密码} -h{数据库地址} --read-from-remote-server --raw mysql-bin.001204
就拿到了
在这里插入图片描述

3.格式化binlog

mysqlbinlog -vv --base64-output=decode-rows mysql-bin.XXX > XXX.sql

举个例子
在这里插入图片描述
得到的数据大概长这样子
在这里插入图片描述

4.把binlog按事务切割,只保留匹配到关键字的事务

$file) {    $handle = fopen($file,'r');    $rows = [];    $i = 0;    $dir = './'.$file.'_dir';    !file_exists($dir) AND mkdir($dir);    while (!feof($handle) && $row = fgets($handle)){        $rows = [];        $rowWeight = 0;        if (strpos($row,'BEGIN') !== false){            $row = trim($row);            do{                $rows []= $row;                $row = fgets($handle);                $row = trim($row);                foreach ($weightList as $weightItem) {                    list($wStr, $w) = $weightItem;                    if (strpos($row,$wStr) !== false){                        $rowWeight += $w;                    }                }// 自由发挥//                if ($rowWeight && preg_match("/###   @1=(.*) \/\* INT meta=0 nullable=0 is_null=0 /",$row, $matches)){//                    if (!in_array($matches[1], $ids)){//                        $rowWeight = -99;//                    }//                }            }while(!feof($handle) && strpos($row,'COMMIT;') === false);            $rows []= $row;            if ($rowWeight >= $minWeight){                file_put_contents("{$dir}/{$i}.sql",implode("\r\n",$rows));                $i++;            }        }    }    fclose($handle);}

在这里插入图片描述

5.按实际需要处理数据和表头进行组装

举个例子
我要把原来的数据和更新后的数据都去重了写入两个文本里面

6.最后获取到的数据 要留意把字符串中的单引号移除

{  "id": "11863",  "shop_id": "NULL",  "platform_id": "5",  "type": "2",  "name": "'字体:always in my heart'",  "translate": "'handwriting'",  "filter": "''",  "no_translation": "0",  "user_id": "915",  "create_time": "'2022-03-24 11:14:32'"}{  "id": "8",  "shop_id": "0",  "platform_id": "4",  "type": "1",  "name": "'日期'",  "translate": "'Date'",  "filter": "''",  "no_translation": "0",  "user_id": "3",  "create_time": "'2021-08-05 14:25:19'"}

来源地址:https://blog.csdn.net/weixin_41580949/article/details/125784786

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯