我正在使用 nodejs mysql-events 来解析 mysql 数据库更新。为避免每次重新启动脚本时解析所有日志,我想使用binlogName
和nextPosition
从文档中读取
filename string 开始从此 binlog 文件中读取事件。如果与位置一起指定,将优先于 startAtEnd。
position integer 从这个位置开始读取事件。必须包含在文件名中。
下面的代码就像一个魅力:
const mysql = require('mysql');
const MySQLEvents = require('@rodrigogs/mysql-events');
// Connect to mysql instance
const connection = mysql.createConnection({
host: 'host',
user: 'user',
password: '*****'
});
const mysqlInstance = new MySQLEvents(connection, {
startAtEnd: true
});
await mysqlInstance.start();
值是有效的,并从 vscode 调试器复制。
mysql> show master status;
+------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------+----------+--------------+------------------+-------------------+
| bin.000015 | 34837697 | | | |
+------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
一旦我更改了 mysqlInstance 设置,它就会忽略它并从第一个日志开始。
const mysqlInstance = new MySQLEvents(connection, {
binlogName: 'bin.000015',
nextPosition: 18540004
});
我应该指定其他内容吗?