PostgreSQL CDC: Logical Replication vs Debezium vs Native Streaming
MySQL CDC streams database changes via the binary log (binlog) — the transaction log that records every INSERT, UPDATE, and DELETE. The three main approaches for MySQL CDC are Debezium (via Kafka Connect), RisingWave native CDC (direct, no middleware), and Flink CDC.
MySQL Binlog Basics
Enable binlog in MySQL configuration:
[mysqld]
server-id = 1
log_bin = mysql-bin
binlog_format = ROW
binlog_row_image = FULL
Row-based binlog (ROW format) is required for CDC — it logs the actual row values, not SQL statements.
MySQL CDC with RisingWave
CREATE SOURCE mysql_source WITH (
connector = 'mysql-cdc',
hostname = 'mysql-host', port = '3306',
username = 'cdc_user', password = 'password',
database.name = 'production', server.id = '1001'
);
CREATE TABLE orders (...) FROM mysql_source TABLE 'production.orders';
No Kafka, no Debezium. SQL transformations and serving built in.
Frequently Asked Questions
Does MySQL CDC require row-based binlog?
Yes. CDC requires binlog_format = ROW so that actual data values are logged, not SQL statements. Statement-based binlog cannot be used for CDC.
Can RisingWave handle MySQL CDC?
Yes. RisingWave supports native MySQL CDC — direct binlog reading without Kafka or Debezium.

