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

这篇具有很好参考价值的文章主要介绍了Java实时监控Mysql的binLog--可指定监听某个库或者某张表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

		*接下来接瞅瞅开启方法(已开启的跳过这一步哦,直接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文件

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

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

Java实时监控Mysql的binLog--可指定监听某个库或者某张表文章来源地址https://www.toymoban.com/news/detail-506230.html

		//导入binLog依赖包
		<dependency>
            <groupId>com.github.shyiko</groupId>
            <artifactId>mysql-binlog-connector-java</artifactId>
            <version>0.21.0</version>
        </dependency>
		//代码编写环节:
		//其中的base代表的是数据库名字,代表此逻辑可以监听到指定数据库,如需要监听到表只需在包一层
		//逻辑
		public static void main(String[] args) {
			BinaryLogClient binaryLogClient = new BinaryLogClient("host", 3306,"root", "root");
     		binaryLogClient.setServerId(1);
       	    binaryLogClient.registerEventListener(event -> {
            EventData data = event.getData();
            TableMapEventData tableMapEventData = null;
            if (data instanceof TableMapEventData) {
                tableMapEventData = (TableMapEventData) data;
                map.put("database",tableMapEventData.getDatabase());
            }

            if (map.getOrDefault("database","").equals("base") && data instanceof UpdateRowsEventData) {
            System.out.println("Update:");
            System.out.println(data.toString());
        	} else if (map.getOrDefault("database","").equals("base") && data instanceof WriteRowsEventData) {
            System.out.println("Insert:");
            System.out.println(data.toString());
        	} else if (map.getOrDefault("database","").equals("base") && data instanceof DeleteRowsEventData) {
            System.out.println("Delete:");
            System.out.println(data.toString());
        	}
    	 });
		}

到了这里,关于Java实时监控Mysql的binLog--可指定监听某个库或者某张表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flink CDC 基于mysql binlog 实时同步mysql表(无主键)

    环境说明: flink 1.15.2 mysql 版本5.7    注意:需要开启binlog,因为增量同步是基于binlog捕获数据 windows11 IDEA 本地运行 具体前提设置,请看这篇,包含 binlog 设置、Maven...... Flink CDC 基于mysql binlog 实时同步mysql表_彩虹豆的博客-CSDN博客 经过不懈努力,终于从阿里help页面找到了支

    2024年02月08日
    浏览(47)
  • 修改MySQL所有表的编码或者修改某个字段的编码

    在修改之前需要确认MySQL服务器的默认字符集和排序规则是utf8mb4,否则需要先修改MySQL服务器的默认字符集。可以通过以下命令查看MySQL服务器当前的默认字符集和排序规则: 如果当前默认字符集和排序规则不是utf8mb4,可以在MySQL的配置文件(如 my.cnf)中添加以下内容: 然后

    2024年02月08日
    浏览(44)
  • java实体类属性值为null不返回或者某个属性不返回

    java实体类值为null或者无关紧要的属性,也返回给了前端,看起来不太高明。可以使用JsonInclude注解或者JsonField注解过滤掉。 用在实体类前或者属性前都可以。 用在属性前。 以上示例中,当total为null时不返回,适用于没有分页的情况。

    2024年02月12日
    浏览(43)
  • Mysql创建用户并且给指定用户添加某个库的所有权限

    运行以下命令首先运行的用户需要有以下操作权限才可以执行 创建用户:命令中的’username’替换为您要创建的用户名,‘host’替换为用户的主机名或IP地址如果都可以访问则配置’%\\\',\\\'password’替换为用户的密码 创建用户 ‘it’ 并且设置任何ip都可访问密码设置123456 创建

    2024年02月11日
    浏览(50)
  • docker安装canal1.1.5监控mysql的binlog日志并配置rocketmq进行数据同步到elasticsearch(超级大干货)

    1、直接拉取canal镜像 2、创建canal文件夹,用来存在容器挂载到宿主机的目录或文件(注:本实例在/home下操作) 3、先启动canal容器,把需要挂载的目录都copy出来,本例子只挂载了conf和logs目录(自己还想挂载啥东西就进去容器里面看看呗,docker exec -it canal /bin/bash)   4、第

    2024年02月07日
    浏览(48)
  • FlinkCDC 实时监控 MySQL

    通过 FlinkCDC 实现 MySQL 数据库、表的实时变化监控,这里只把变化打印了出来,后面会实现如何再写入其他 MySQL 库中; 在 my.cnf 中开启 binlog,我这里指定了 test 库,然后重启 MySQL 在 IDEA 中新建工程 flinkcdc pom.xml resources/log4j.properties 反序列化类: com/zsoft/flinkcdc/MyDeserialization

    2024年02月06日
    浏览(34)
  • 监听BinLog

    监听BinLog 引入pom依赖 代码实现 处理业务1 处理业务2

    2024年01月19日
    浏览(23)
  • Canal同步Mysql实时操作日志至RabbitMQ,并实现监听及解析处理

    关于Canal的介绍及原理不在此赘述,可自行查阅。笔者在使用Canal同步Mysql实时操作记录至RabbitMQ的过程中,也翻阅了一些大牛们的文章,可能是我使用的Canal版本与文中版本不一致,出现了一些问题,在此总结记录一下可行的方案。 注:本文使用的Canal为 v1.1.7 先查看目标数据

    2024年04月10日
    浏览(47)
  • 使用开源实时监控系统 HertzBeat 5分钟搞定 Mysql 数据库监控告警

    Mysql 数据库介绍 MySQL是一个开源关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的开源关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 HertzBeat 介绍 H

    2024年02月10日
    浏览(43)
  • java通过FTP跨服务器动态监听读取指定目录下文件数据

    1、文件数据在A服务器(windows)(不定期在指定目录下生成),项目应用部署在B服务器(Linux); 2、项目应用在B服务器,监听A服务器指定目录,有新生成文件,进行读取文件信息,持久化数据; 3、提供两块内容,第一安装windows FTP服务;第二项目源码,希望可以帮助到你

    2024年02月03日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包