Невозможно изменить идентификатор сервера клиента узла с помощью @ rodrigogs / mysql-events Прослушиватель событий Zongji - PullRequest
0 голосов
/ 07 марта 2019

Я использую @ rodrigogs / mysql-events для прослушивания событий БД в БД mysql. Пока работает довольно хорошо, за исключением того, что я получаю следующую ошибку, когда у меня более одного клиента, слушающего БД:

A slave with the same server_uuid/server_id as this slave has connected to the master

В ходе некоторых исследований мне сказали, что каждый клиент рассматривается главным сервером как серверы репликации, и поэтому каждый из них должен представлять отдельный идентификатор сервера, чтобы избежать конфликта.

В соответствии с документацией @ rodrigogs / mysql-events я пропустил опцию «serverID», как показано ниже, но ошибки продолжают возникать, и бинлог сообщает о соединениях только с идентификатором сервера 2. Чего мне не хватает?

const instance = new MySQLEvents(DBcon, {
        startAtEnd: true,
        serverId: 5,
        excludedSchemas: {
                mysql: true,
        }
});

1 Ответ

0 голосов
/ 08 марта 2019

Итак, я нашел решение. Оказывается, что приведенная выше конфигурация верна. У меня была ошибка в каком-то последующем коде. Я также улучшил его, чтобы каждый клиент использовал свой идентификатор сервера в зависимости от среды хоста:

const instance = new MySQLEvents(DBcon, {
        startAtEnd: true,
        serverId: process.env.HOSTNAME == ProdHost ? 5 : 66,
        excludedSchemas: {
                mysql: true,
        }
});
...