{
  "schema_version": 2,
  "id": "integrate/redis-data-integration/data-pipelines/prepare-dbs/aws-aurora-rds/aws-aur-mysql",
  "title": "Prepare AWS Aurora MySQL/AWS RDS MySQL for RDI",
  "url": "https://redis.io/docs/latest/integrate/redis-data-integration/1.19.1/data-pipelines/prepare-dbs/aws-aurora-rds/aws-aur-mysql/",
  "summary": "Enable CDC features in your source databases",
  "content": "\nFollow the steps in the sections below to prepare an [AWS Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.Aurora.html) or [AWS RDS MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html) database.\ndatabase to work with RDI.\n\nSelect the steps for your database type.\n\n**AWS Aurora MySQL:**\n\n```checklist {id=\"auroramysql\" nointeractive=\"true\" }\n- [ ] [Add an Aurora reader node](#add-an-aurora-reader-node)\n- [ ] [Create and apply parameter group](#aurora-create-and-apply-parameter-group)\n- [ ] [Create Debezium user](#aurora-create-debezium-user)\n```\n\n## Add an Aurora reader node\n\nRDI requires that your Aurora MySQL database has at least one replica or reader node. \n\nTo add a reader node to an existing database, select **Add reader** from the **Actions** menu of the database and [add a reader node](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-replicas-adding.html).\n\nYou can also create one during database creation by selecting **Create an Aurora Replica or Reader node in a different AZ (recommended for scaled availability)** under **Availability \u0026 durability \u003e Multi-AZ deployment**. \n\n## Create and apply parameter group {#aurora-create-and-apply-parameter-group}\n\nRDI requires some changes to database parameters. On AWS Aurora, you change these parameters via a parameter group.\n\n```checklist {id=\"auroramysql-param-group\" nointeractive=\"true\" }\n- [ ] [Create/modify a parameter group](#aurora-create-a-parameter-group)\n- [ ] [Apply the parameter group](#aurora-apply-the-parameter-group)\n- [ ] [Apply the parameter group to the database](#aurora-apply-the-parameter-group-to-the-database)\n- [ ] [Reboot the database instance](#aurora-reboot-the-database-instance)\n```\n\n1. \u003ca id=\"aurora-create-a-parameter-group\"\u003e\u003c/a\u003e\n    In the [Relational Database Service (RDS) console](https://console.aws.amazon.com/rds/), navigate to **Parameter groups**.\n    \n    If you have no existing parameter group,\n    [create a new parameter group](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.CreatingCluster.html)\n    with the following settings:\n\n    | Name | Value |\n    | :-- | :-- |\n    | **Parameter group name**  | Enter a suitable parameter group name, like `rdi-mysql` |\n    | **Description**  | (Optional) Enter a description for the parameter group |\n    | **Engine Type**  | Choose **Aurora MySQL**.  |\n    | **Parameter group family**  | Choose **aurora-mysql8.0**. |\n    | **Type**  | Select **DB Parameter Group**. |\n\n    Select **Create** to create the parameter group.\n\n    If you *do* have an existing parameter group, select it and then either:\n\n    -   Select **Edit** from **Parameter group actions** to \n        [modify the parameter group](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.ModifyingCluster.html)\n        with the settings shown in the table above.\n    -   Select **Copy** from **Parameter group actions** to\n        [copy the existing parameter group](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.CopyingCluster.html)\n        and then modify the copy with the settings shown in the table above.\n\n1. \u003ca id=\"aurora-apply-the-parameter-group\"\u003e\u003c/a\u003e\n    Ensure that the parameter group you have just created or modified is selected\n    and then select **Edit**. Change the following parameters:\n\n    | Name | Value |\n    | :-- | :-- |\n    | `binlog_format`  | `ROW` |\n    | `binlog_row_image`  | `FULL` |\n    | `gtid_mode`  | `ON` |\n    | `enforce_gtid_consistency`  | `ON` |\n\n    Select **Save Changes** to apply the changes to the parameter group.\n\n1. \u003ca id=\"aurora-apply-the-parameter-group-to-the-database\"\u003e\u003c/a\u003e\n    Go back to your target database on the RDS console, select **Modify** and then scroll down to **Additional Configuration**. Set the **DB Cluster Parameter Group** to the group you just created.\n\n    Select **Save changes** to apply the parameter group to the new database.\n\n1. \u003ca id=\"aurora-reboot-the-database-instance\"\u003e\u003c/a\u003e\n    Reboot your database instance. See [Rebooting a DB instance within an Aurora cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-reboot-db-instance.html) for more information.\n\n\u003ca id=\"aurora-create-debezium-user\"\u003e\u003c/a\u003e\n\n## Create Debezium user\n\nThe Debezium connector needs a user account to connect to MySQL. This\nuser must have appropriate permissions on all databases where you want Debezium\nto capture changes.\n\n1. Connect to your database as an admin user and create a new user for the connector:\n\n    ```sql\n    CREATE USER '\u003cusername\u003e'@'%' IDENTIFIED BY '\u003cpassword\u003e';\n    ```\n\n    Replace `\u003cusername\u003e` and `\u003cpassword\u003e` with a username and password for the new user.\n\n    The `%` means that the user can connect from any client. If you want to restrict the user to connect only from the RDI host, replace `%` with the IP address of the RDI host.\n\n1. Grant the user the necessary permissions:\n\n    ```sql\n    GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT, LOCK TABLES ON *.* TO '\u003cusername\u003e'@'%';\n    ```\n\n    Replace `\u003cusername\u003e` with the username of the Debezium user.\n\n    You can also grant SELECT permissions for specific tables only. The other permissions are global and cannot be restricted to specific tables.\n\n    ```sql\n    GRANT RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT, LOCK TABLES ON *.* TO '\u003cusername\u003e'@'%';\n    GRANT SELECT ON \u003cdatabase\u003e.\u003ctable\u003e TO '\u003cusername\u003e'@'%';\n    ```\n\n1. Finalize the user's permissions:\n\n    ```sql\n    FLUSH PRIVILEGES;\n    ```\n\n**AWS RDS MySQL:**\n\n```checklist {id=\"rds-mysql-list\" nointeractive=\"true\" }\n- [ ] [Create and apply parameter group](#rds-create-and-apply-parameter-group)\n- [ ] [Create Debezium user](#rds-create-debezium-user)\n```\n\n## Create and apply parameter group {#rds-create-and-apply-parameter-group}\n\nRDI requires some changes to database parameters. On AWS RDS, you change these parameters via a parameter group.\n\n```checklist {id=\"rds-mysql-param-group\" nointeractive=\"true\" }\n- [ ] [Create/modify a parameter group](#rds-create-a-parameter-group)\n- [ ] [Apply the parameter group](#rds-apply-the-parameter-group)\n- [ ] [Apply the parameter group to the database](#rds-apply-the-parameter-group-to-the-database)\n- [ ] [Reboot the database instance](#rds-reboot-the-database-instance)\n```\n\n1. \u003ca id=\"rds-create-a-parameter-group\"\u003e\u003c/a\u003e\n    In the [Relational Database Service (RDS) console](https://console.aws.amazon.com/rds/), navigate to **Parameter groups**.\n    \n    If you have no existing parameter group,\n    [create a new parameter group](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.CreatingCluster.html)\n    with the following settings:\n\n    | Name | Value |\n    | :-- | :-- |\n    | **Parameter group name**  | Enter a suitable parameter group name, like `rdi-mysql` |\n    | **Description**  | (Optional) Enter a description for the parameter group |\n    | **Engine Type**  | Choose **MySQL Community**.  |\n    | **Parameter group family**  | Choose **mysql8.0**. |\n\n    Select **Create** to create the parameter group.\n\n    If you *do* have an existing parameter group, select it and then either:\n\n    -   Select **Edit** from **Parameter group actions** to \n        [modify the parameter group](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.ModifyingCluster.html)\n        with the settings shown in the table above.\n    -   Select **Copy** from **Parameter group actions** to\n        [copy the existing parameter group](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.CopyingCluster.html)\n        and then modify the copy with the settings shown in the table above.\n\n1. \u003ca id=\"rds-apply-the-parameter-group\"\u003e\u003c/a\u003e\n    Ensure that the parameter group you have just created or modified is selected\n    and then select **Edit**. Change the following parameters:\n\n    | Name | Value |\n    | :-- | :-- |\n    | `binlog_format`  | `ROW` |\n    | `binlog_row_image`  | `FULL` |\n\n    Select **Save Changes** to apply the changes to the parameter group.\n\n1. \u003ca id=\"rds-apply-the-parameter-group-to-the-database\"\u003e\u003c/a\u003e\n    Go back to your target database on the RDS console, select **Modify** and then scroll down to **Additional Configuration**. Set the **DB Cluster Parameter Group** to the group you just created.\n\n    Select **Save changes** to apply the parameter group to the new database.\n\n1. \u003ca id=\"rds-reboot-the-database-instance\"\u003e\u003c/a\u003e\n    Reboot your database instance. See [Rebooting a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RebootInstance.html) for more information.\n\n\u003ca id=\"rds-create-debezium-user\"\u003e\u003c/a\u003e\n\n## Create Debezium user\n\nThe Debezium connector needs a user account to connect to MySQL. This\nuser must have appropriate permissions on all databases where you want Debezium\nto capture changes.\n\n1. Connect to your database as an admin user and create a new user for the connector:\n\n    ```sql\n    CREATE USER '\u003cusername\u003e'@'%' IDENTIFIED BY '\u003cpassword\u003e';\n    ```\n\n    Replace `\u003cusername\u003e` and `\u003cpassword\u003e` with a username and password for the new user.\n\n    The `%` means that the user can connect from any client. If you want to restrict the user to connect only from the RDI host, replace `%` with the IP address of the RDI host.\n\n1. Grant the user the necessary permissions:\n\n    ```sql\n    GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT, LOCK TABLES ON *.* TO '\u003cusername\u003e'@'%';\n    ```\n\n    Replace `\u003cusername\u003e` with the username of the Debezium user.\n\n    You can also grant SELECT permissions for specific tables only. The other permissions are global and cannot be restricted to specific tables.\n\n    ```sql\n    GRANT RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT, LOCK TABLES ON *.* TO '\u003cusername\u003e'@'%';\n    GRANT SELECT ON \u003cdatabase\u003e.\u003ctable\u003e TO '\u003cusername\u003e'@'%';\n    ```\n\n1. Finalize the user's permissions:\n\n    ```sql\n    FLUSH PRIVILEGES;\n    ```\n\n\n",
  "tags": ["docs","integrate","rs","rdi"],
  "last_updated": "2026-09-19T17:55:58-07:00"
}
