首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么mysql-event不能在node.js中运行?

为什么mysql-event不能在node.js中运行?
EN

Stack Overflow用户
提问于 2017-06-05 17:18:21
回答 3查看 6.1K关注 0票数 4
代码语言:javascript
复制
var MySQLEvents = require('mysql-events');
var dsn = {
  host:     'localhost',
  user:     'root',
  password: '' // no password set that's why keep blank
};
var mysqlEventWatcher = MySQLEvents(dsn);
console.log(mysqlEventWatcher);
var watcher =mysqlEventWatcher.add(
   'myDB.myTable',
  function (oldRow, newRow, event) {
     //row inserted
    if (oldRow === null) {
      //insert code goes here
    }

     //row deleted
    if (newRow === null) {
      //delete code goes here
    }

     //row updated
    if (oldRow !== null && newRow !== null) {
      //update code goes here
    }

    //detailed event information
    console.log(event); // don't matter, it updates, delete or insert
  },
  'Active'
);

https://www.npmjs.com/package/mysql-events获取代码

当我尝试打印console.log(mysqlEventWatcher);时,它打印的内容如下

代码语言:javascript
复制
{ started: false,
  zongji: {},
  databases: [],
  tables: {},
  columns: {},
  events: [ 'tablemap', 'writerows', 'updaterows', 'deleterows' ],
  triggers: [],
  dsn: { host: 'localhost', user: 'root', password: '' },
  settings: {},
  connect: [Function: connect],
  add: [Function: add],
  remove: [Function: remove],
  stop: [Function: stop],
  reload: [Function: reload],
  includeSchema: [Function: includeSchema] }

在写完这段代码后,我更新了我在mysqlEventWatcher中实现的特定表(‘myTable’),然后它就不会转到该方法,因为我正在打印事件。

我不知道我错过了什么

EN

回答 3

Stack Overflow用户

发布于 2017-09-28 08:22:52

我添加这个答案是因为这个答案首先出现在Google上。希望这能帮助到一些人。

我使用XAMPP作为我的服务器,为了让它正常工作,我编辑了my.cnf文件,该文件可以在这里找到:xampp\mysql\bin,包含以下内容:

我启用了log-bin=mysql-bin的每个实例(通过删除#),并编写了binlog_format=row

编辑:

server-id =1

log_bin = /var/log/mysql/mysql-bin.log

binlog_format =行

票数 2
EN

Stack Overflow用户

发布于 2017-06-29 16:34:48

  • 确保您在mysql服务器上启用了binlog,并且binlog格式为ROW binlog以删除'Active‘,并确保您设置了正确的数据库和表名来运行第一个测试

var监视器=mysqlEventWatcher.add( 'your_database_name.your_table_name',function (oldRow,newRow,=mysqlEventWatcher.add) {} );var

票数 1
EN

Stack Overflow用户

发布于 2017-06-29 18:58:06

在检查@nguyendn answer的同时,请尝试运行ZongJi standalone来检查它的功能

代码语言:javascript
复制
var ZongJi = require('zongji');
var zongji = new ZongJi({
  host     : 'localhost',
  user     : 'user',
  password : 'password',
  debug: true
});

zongji.on('binlog', function(evt) {
  evt.dump();
});

如果ZongJi不工作,mysql-event也不会工作。对我来说,ZongJi只在本地主机上工作,而不在远程IP上工作

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

https://stackoverflow.com/questions/44365600

复制
相关文章

相似问题

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