怎么通过Java监听MySQL数据的变化


这篇文章主要介绍“怎么通过Java监听MySQL数据的变化”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么通过Java监听MySQL数据的变化”文章能帮助大家解决问题。原理:java通过bin-log监控mysql数据变化binlog :binlog 就是binary log,二进制日志文件,这个文件记录了mysql所有的增、删、改语句。通过binlog日志我们可以做数据恢复,做主从复制等等。可以看到,只要有了这个binlog,我们就拥有了mysql的完整备份了。就是说一旦开启了这个功能,数据库中数据的任何变化,都会记录到这种日志文件中,所以可以通过Java监听这种的文件,来监听MySQL数据的变化。首先,需要开启MySQL的binlog功能,MySQL默认是未开启的查询是否开始bin免费云主机域名log功能的sql语句:show VARIABLES like '%log_bin%';log_bin的值是on则表示开启,我也不知道没开启是没有这个还是值是off,我也不敢瞎说开启分为两步,1.改配置 2.重启MySQL服务改配置打开自己MySQL的配置文件,比如PC端的即my.ini文件,加上下面三句改完,然后重启MySQL服务就可以了说明:mysql-bin只是个名字而已,可以随便起。将来保存的日志文件名就是mysql-bin.000001,mysql-bin.000002这样的。生成的日志文件会存放在自己的MySQL的存放数据的文件夹,比如我设置的存放MySQL数据的文件夹目录是:D:MySqlmysql-8.0.24data,然后生成的日志文件就会在这个目录下。binlog-format = ROW,binlog_format 设置为 ROW可以保证数据的一致, 因为在 STATEMENT 或 MIXED 模式下, Binlog 只会记录和传输 SQL 语句(以减少日志大小),而不包含具体数据,我们也就无法保存了。Java需要使用一个工具mysql-binlog-connector-java导入Jar包:这个Jar包有两个版本,一个是com.github.shyiko的一个是com.zendesk,使用方式和代码完全一样,只是各自的实现方式可能不同,但是com.github.shyiko20年停止更新了,对于MySQL8兼容性不是很好,建议使用com.zendesk。顺便附上com.github.shyiko的MySQL8及以上使用com.github.shyiko的可能会出现Client does not support authentication protocol requested by server...错误原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,解决办法:把mysql用户登录密码加密规则还原成mysql_native_password,
SQL语句:ALTER USER 'root'@'自己需要连接的数据库的host,自己本机的就用localhost' IDENTIFIED WITH mysql_native_password BY '自己所使用的登录密码';
然后就好了然后再看逻辑代码:实现是在connectMysqlBinLog()方法中的,里面通过data instanceof ****,即可查询到执行的增删改什么请求,详细请看代码,看一下就明白了有一定可能数据发生变更后控制台没打印,可能是加载慢的原因,稍等一会控制台就可能会打印相关信息关于“怎么通过Java监听MySQL数据的变化”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: 微信小程序页面返回传值的解决方案是什么

这篇文章主要介绍“微信小程序页面返回传值的解决方案是什么”,在日常操作中,相信很多人在微信小程序页面返回传值的解决方案是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序页面返回传值的解决方案是什么”的疑惑有所帮助!接…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/21 19:13
下一篇 05/21 19:14

相关推荐