Skip to main content
Skip to main content
Edit this page

Aurora MySQL source setup guide

This step-by-step guide shows you how to configure Amazon Aurora MySQL to replicate data into ClickHouse Cloud using the MySQL ClickPipe. For common questions around MySQL CDC, see the MySQL FAQs page.

Enable binary log retention

The binary log is a set of log files that contain information about data modifications made to a MySQL server instance, and binary log files are required for replication. To configure binary log retention in Aurora MySQL, you must enable binary logging and increase the binlog retention interval.

1. Enable binary logging via automated backup

The automated backups feature determines whether binary logging is turned on or off for MySQL. Automated backups can be configured for your instance in the RDS Console by navigating to Modify > Additional configuration > Backup and selecting the Enable automated backups checkbox (if not selected already).

We recommend setting the Backup retention period to a reasonably long value, depending on the replication use case.

2. Increase the binlog retention interval

Caution

If ClickPipes tries to resume replication and the required binlog files have been purged due to the configured binlog retention value, the ClickPipe will enter an errored state and a resync is required.

By default, Aurora MySQL purges the binary log as soon as possible (i.e., lazy purging). We recommend increasing the binlog retention interval to at least 72 hours to ensure availability of binary log files for replication under failure scenarios. To set an interval for binary log retention (binlog retention hours), use the mysql.rds_set_configuration procedure:

If this configuration isn't set or is set to a low interval, it can lead to gaps in the binary logs, compromising ClickPipes' ability to resume replication.

Configure binlog settings

The parameter group can be found when you click on your MySQL instance in the RDS Console, and then navigate to the Configuration tab.

Tip

If you have a MySQL cluster, the parameters below can be found in the DB cluster parameter group instead of the DB instance group.


Click the parameter group link, which will take you to its dedicated page. You should see an Edit button in the top right.


The following parameters need to be set as follows:

  1. binlog_format to ROW.
  1. binlog_row_metadata to FULL.
  1. binlog_row_image to FULL.

Then, click on Save Changes in the top right corner. You may need to reboot your instance for the changes to take effect — a way of knowing this is if you see Pending reboot next to the parameter group link in the Configuration tab of the Aurora instance.

Enable GTID mode (recommended)

Tip

The MySQL ClickPipe also supports replication without GTID mode. However, enabling GTID mode is recommended for better performance and easier troubleshooting.

Global Transaction Identifiers (GTIDs) are unique IDs assigned to each committed transaction in MySQL. They simplify binlog replication and make troubleshooting more straightforward. We recommend enabling GTID mode, so that the MySQL ClickPipe can use GTID-based replication.

GTID-based replication is supported for Amazon Aurora MySQL v2 (MySQL 5.7) and v3 (MySQL 8.0), as well as Aurora Serverless v2. To enable GTID mode for your Aurora MySQL instance, follow these steps:

  1. In the RDS Console, click on your MySQL instance.
  2. Click on the Configuration tab.
  3. Click on the parameter group link.
  4. Click on the Edit button in the top right corner.
  5. Set enforce_gtid_consistency to ON.
  6. Set gtid-mode to ON.
  7. Click on Save Changes in the top right corner.
  8. Reboot your instance for the changes to take effect.

Configure a database user

Connect to your Aurora MySQL instance as an admin user and execute the following commands:

  1. Create a dedicated user for ClickPipes:

  2. Grant schema permissions. The following example shows permissions for the mysql database. Repeat these commands for each database and host you want to replicate:

  3. Grant replication permissions to the user:

Configure network access

IP-based access control

To restrict traffic to your Aurora MySQL instance, add the documented static NAT IPs to the Inbound rules of your Aurora security group.

To connect to your Aurora MySQL instance through a private network, you can use AWS PrivateLink. Follow the AWS PrivateLink setup guide for ClickPipes to set up the connection.

What's next?

Now that your Amazon Aurora MySQL instance is configured for binlog replication and securely connecting to ClickHouse Cloud, you can create your first MySQL ClickPipe. For common questions around MySQL CDC, see the MySQL FAQs page.