Azure MySQL Flexible Server: Enable binlog_row_metadata=FULL
• Root Cause: Azure MySQL Flexible Server locks the binlog_row_metadata parameter at MINIMAL, but Microsoft Fabric EventStream (Debezium) requires FULL metadata to parse JSON columns from the binary log.
• Why It Fails: With MINIMAL metadata, Debezium receives binlog events but cannot determine the data types of columns. For JSON columns specifically, it cannot decode the binary JSON format stored in the binlog, causing a schema mismatch error: "internal schema size 256, but row size 1".
• What Works vs Fails: Initial snapshot succeeds (uses direct SQL queries), and CDC works fine for tables without JSON columns or when JSON columns contain NULL. CDC fails only when UPDATE/INSERT operations include actual JSON data in the 3 affected columns.
• Solution: Request Azure support to enable binlog_row_metadata = FULL on both primary and read replica servers.