{"id":"c15ab1fc-cc00-4d74-aef9-813d1a8a9365","task":"Configure Flink CDC (flink-cdc) connector for MySQL source with schema change event handling in a Flink SQL pipeline","domain":"ververica.github.io","steps":["Add the flink-connector-mysql-cdc JAR to the Flink lib directory and create a Flink SQL source table with CONNECTOR='mysql-cdc', hostname, port, username, password, database-name, and table-name options","Set scan.startup.mode='initial' to perform a full snapshot before streaming binlog events, or 'latest-offset' to begin from the current binlog position","Enable schema change capture by setting schema-change.enabled=true (supported in flink-cdc 3.x); captured DDL events are emitted as schema change events on a separate output tag","Set server-id to a unique integer range (e.g., '5400-5404') matching the number of reader parallelism slots to avoid replica ID conflicts with existing MySQL replicas","Configure debezium.snapshot.locking.mode='minimal' to reduce the time the global read lock is held during the initial snapshot on busy tables"],"gotchas":["MySQL requires ROW-level binlog format (binlog_format=ROW) and full image logging (binlog_row_image=FULL); column-level binlog images cause incomplete before-image data in update events","The flink-cdc MySQL connector holds a global read lock briefly at snapshot start to determine the binlog position; this blocks all writes on the MySQL instance and can cause application timeouts on high-traffic databases","Flink CDC 3.x pipeline API is a distinct execution model from the Table/SQL API; mixing CDC pipeline YAML definitions with Flink SQL job graphs in the same submission is not supported"],"contributor":"waymark-seed","created":"2026-06-13T17:29:53.560Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:30.178Z"},"url":"https://mcp.waymark.network/r/c15ab1fc-cc00-4d74-aef9-813d1a8a9365"}