MySQL
This article describes how to enable CDC on your MySQL database.
This article guides you through the process of enabling CDC on your MySQL database.
Prerequisites for MySQL
Upsolver supports MySQL 5.6+ and 8.0.x. You can connect to:
Generic MySQL (self-hosted)
Amazon RDS MySQL
Amazon Aurora MySQL
Permissions
In order for Upsolver to read the binlog and initial state of the database, the CDC data source requires the following permissions:
SELECT
(on the tables that are to be loaded, usually all tables)REPLICATION CLIENT
REPLICATION SLAVE
RELOAD
SHOW DATABASES
(this is only necessary if the server was started with the --skip-show-database option)
For more information about creating a user with the correct permissions, see the Debezium instructions for configuring MySQL.
Enabled binlog
The binlog must be enabled in ROW
mode. You can follow the Debezium guide for MySQL to check if it is enabled and configure it if you are using your own MySQL server:
If you are using AWS RDS you will need to:
Ensure that Automated Backups are enabled. If not, the binlog will be disabled regardless of the parameter group settings.
Change the binlog mode to
ROW
in the parameter group settings for the cluster:Create a new parameter group based on the base group that matches your database version.
Change the
BINGLOG_FORMAT
toROW
Change the database cluster to use the new parameter group and apply the changes.
Ensure binlog duration is long enough
Upsolver constantly reads the binlog's latest events, so generally the binlog retention only needs to be set high enough to handle server interruptions or situations where the data source or compute cluster is paused in Upsolver. It is therefore recommended to set the binlog retention to 1 day, and generally not recommended to set it below 3 hours.
Using AWS RDS, this can be achieved using the following command:
Please consult the documentation for your versions of MySQL for custom deployments.
Last updated