Я использую nodejs mysql -events для анализа mysql db обновлений. Чтобы избежать синтаксического анализа всех журналов каждый раз, когда я перезапускаю свой сценарий, я хочу использовать binlogName
и nextPosition
как прочитанное из документации
строка имени файла Начать чтение событий из этого binlog файл. Если указано вместе с позицией, будет иметь приоритет над startAtEnd.
целое число позиции Начать чтение событий с этой позиции. Должен быть включен в имя файла.
Приведенный ниже код работает как символ:
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
});
Должен ли я указать что-то еще?