首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用不起作用的zongji模块监听mysql更改事件

使用不起作用的zongji模块监听mysql更改事件
EN

Stack Overflow用户
提问于 2017-12-19 16:19:09
回答 1查看 1.7K关注 0票数 2

我正在尝试使用mysql-event模块在我的应用程序中监听mysql更改事件。为此,我需要确定zongji模块是否工作正常。

因此,到目前为止,我尝试了以下内容:

--我的server.js

代码语言:javascript
复制
                          var ZongJi = require('zongji');

                          var zongji = new ZongJi({
                            host     : 'db_host',
                            user     : 'root',
                            password : 'kakaun',
                            insecureAuth: true,
                            debug: true
                          });
                          zongji.start({
                            includeEvents: ['tablemap', 'writerows', 'updaterows', 'deleterows']
                          });
                          zongji.on('binlog', function(evt) {
                            console.log("+++++Inside binlog event++++");
                            evt.dump();
                          });
                          process.on('SIGINT', function() {
                            console.log('Got SIGINT.');
                            zongji.stop();
                            process.exit();
                          });

(来自https://github.com/nevill/zongji/blob/master/example.js的示例)

我已经为mysql完美地配置了binlog,并且它也在创建日志。

但我无法在我的节点应用程序中为上述控制台的任何更改事件记录任何内容。

当我打开debug= true选项时,我可以看到,对于数据库日志中的每个更改,我都会得到这个调试日志:

代码语言:javascript
复制
<-- BinlogHeader
BinlogHeader {}

<-- BinlogHeader
BinlogHeader {}

<-- BinlogHeader
BinlogHeader {}

因此,这意味着我的应用程序能够成功地联系mysql的binlog,但我如何知道哪一行发生了更改或哪些行发生了更改?因为zongzi.on('binlog',Function)没有打印任何东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-19 17:09:22

所以经过大量的调试,我发现了问题所在。所以这里有一些我忽略了并且做错了的事情。我想张贴我的错误,以便其他用户可以避免这样做。

默认情况下,如果您为mysql启用binlog,它将是基于事件的日志记录,这是zongji模块无法理解的。https://dev.mysql.com/doc/internals/en/binary-log-overview.html

因此,您需要启用基于行的日志记录,以获取有用的信息(以了解发生了哪些更改)。

可以在mysql配置文件的my.cnf文件中使用以下额外语句启用基于行的日志记录:

代码语言:javascript
复制
binlog_format    = row

添加完这段代码并重新启动mysql服务器后,一切都开始正常工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47882640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档