0


Java实时监控Mysql的binLog--可指定监听某个库或者某张表

        在实时监控Mysql的binLog时,前提是开启Mysql的BinLog打印机制,如果是有主从节点的,肯定是开
        启了的,因为主从节点也是通过binLog实现数据同步,状态一致的。
        在MySql的命令行或者客户端输入命令:
            show variables like '%bin%'
        会看到打印MySql的配置信息,其中有一行log_bin,如果对应的值为ON代表已开启BinLog机制,如果
        是OFF则未开启BinLog打印机制,需先开启这个机制才能next.

在这里插入图片描述

*接下来接瞅瞅开启方法(已开启的跳过这一步哦,直接next)*1) 找到Mysql的配置文件中的my.ini文件(这里建议在编辑的时候不要修改此文件的编码,修改后
        可能会导致文件无法解析)
        2) 在文件中的[mysqld]后面加入两行配置:
                    log_bin=mysql-bin
                    binlog-format=ROW
        第一行的开启binLog机制,第二行是数据binLog数据一行一行打印,都要加上哦!
        3) 重启mysql服务 - 重启之后在输入命令:show variables like '%bin%' 查看是否开启
        binLog机制
1)找到my.ini文件

在这里插入图片描述

2)编辑文件,加配置参数

在这里插入图片描述

//导入binLog依赖包<dependency><groupId>com.github.shyiko</groupId><artifactId>mysql-binlog-connector-java</artifactId><version>0.21.0</version></dependency>
//代码编写环节://其中的base代表的是数据库名字,代表此逻辑可以监听到指定数据库,如需要监听到表只需在包一层//逻辑publicstaticvoidmain(String[] args){BinaryLogClient binaryLogClient =newBinaryLogClient("host",3306,"root","root");
             binaryLogClient.setServerId(1);
               binaryLogClient.registerEventListener(event ->{EventData data = event.getData();TableMapEventData tableMapEventData =null;if(data instanceofTableMapEventData){
                tableMapEventData =(TableMapEventData) data;
                map.put("database",tableMapEventData.getDatabase());}if(map.getOrDefault("database","").equals("base")&& data instanceofUpdateRowsEventData){System.out.println("Update:");System.out.println(data.toString());}elseif(map.getOrDefault("database","").equals("base")&& data instanceofWriteRowsEventData){System.out.println("Insert:");System.out.println(data.toString());}elseif(map.getOrDefault("database","").equals("base")&& data instanceofDeleteRowsEventData){System.out.println("Delete:");System.out.println(data.toString());}});}
标签: linux java 数据库

本文转载自: https://blog.csdn.net/weixin_48960305/article/details/127926739
版权归原作者 生吃小瓜子 所有, 如有侵权,请联系我们删除。

“Java实时监控Mysql的binLog--可指定监听某个库或者某张表”的评论:

还没有评论