无法通过“SHOW MASTER STATUS”读取二进制日志文件名和位置

Squ*_*ake 5 mysql docker-compose debezium

我正在使用debezium0.9 版本进行一些 POC,并且正在使用嵌入式 Debezium 配置运行独立的 docker 化 mysql 数据库。我遇到了这个问题:

Caused by: java.lang.IllegalStateException: Cannot read the binlog filename and position via 'SHOW MASTER STATUS'. Make sure your server is correctly configured
Run Code Online (Sandbox Code Playgroud)

我怀疑这是因为独立配置mysql或嵌入式配置,但不确定如何继续和修复。有什么提示吗?

run*_*wuf 1

正如 Bill 在上述评论中指出的那样 - Debezium 连接器使用二进制日志来完成其工作,因此需要启用它。

Debezium MySQL 需要启用服务器 binlog。对于 RDS MySQL,log_bin 属性由 AWS 直接管理,默认设置为 OFF。Debezium MySQL 在快照期间执行 SHOW MASTER STATUS 命令时,结果集为空并抛出异常:

https://debezium.io/documentation/faq/

您可以检查是否启用了 binlog show master status,这是禁用时从 debezium 收到的错误。以下是启用 b​​inlog 时的示例,禁用时将不会返回任何行。

mysql> show master status;
+------------------+----------+--------------+------------------+--------------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                          |
+------------------+----------+--------------+------------------+--------------------------------------------+
| mysql-bin.000001 |   170796 |              |                  | bf9ae151-baac-11ec-919f-42010a8a0014:1-599 |
+------------------+----------+--------------+------------------+--------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

对于 Google Cloud SQL MySQL 5.x,您需要启用时间点恢复 https://cloud.google.com/sql/docs/mysql/backup-recovery/pitr#enablingpitr