- RDS MySQL supports MySQL 8.4 under standard support; MySQL 8.0 and 5.7 are now available only under RDS Extended Support, which adds a per-vCPU-hour charge.
- AWS RDS MariaDB is a separate engine on the same platform, with majors from 10.5 to 12.3 listed in AWS's support calendar.
- Setup is the standard RDS flow: choose engine and version, instance class, gp3 storage, a private VPC subnet group and a security group allowing your app on the MySQL port.
- Use InnoDB: AWS states that point-in-time restore and snapshot restore are supported for InnoDB only.
- Pick Aurora MySQL instead for shared cluster storage, many low-latency replicas or Serverless v2; pick RDS MySQL for the closest match to community MySQL.
What RDS MySQL is (and how RDS MariaDB fits in)
RDS MySQL (Amazon RDS for MySQL) is AWS's managed MySQL service. You create DB instances, snapshots, point-in-time restores and read replicas, and AWS runs the host, storage, patching and backups. The RDS User Guide says the master user created with the instance gets DBA privileges with some limitations; there is no OS access, and some administrative tasks are done through RDS-provided stored procedures rather than the usual server commands.
AWS RDS MariaDB (Amazon RDS for MariaDB) is a separate engine choice on the same service. It shares the console, pricing model, parameter groups and Multi-AZ options, but follows MariaDB's own release line. Choose it if your application already targets MariaDB; otherwise RDS MySQL tracks Oracle's MySQL Community releases.
Supported MySQL and MariaDB versions
AWS publishes support calendars for both engines. For MySQL the important change in 2026 is that MySQL 8.0 reached RDS end of standard support on 31 July 2026; AWS now marks 8.0 and 5.7 as available only under RDS Extended Support, which is billed per vCPU-hour on top of the instance. New instances should use MySQL 8.4. AWS documents in-place major upgrades from 5.7 to 8.0 and from 8.0 to 8.4; they are never automatic, because they carry compatibility risk.
| Engine and major version | RDS release date | RDS end of standard support | Status today |
|---|---|---|---|
| MySQL 8.4 | 21 November 2024 | 31 July 2029 | Standard support |
| MySQL 8.0 | 23 October 2018 | 31 July 2026 | Extended Support only (ends 31 July 2029) |
| MySQL 5.7 | 22 February 2016 | 29 February 2024 | Extended Support only (ends 30 June 2029) |
| MariaDB 12.3 | 7 August 2026 | June 2029 | Standard support |
| MariaDB 11.8 | 25 August 2025 | June 2028 | Standard support |
| MariaDB 11.4 | 15 October 2024 | May 2029 | Standard support |
| MariaDB 10.11 | 21 August 2023 | February 2028 | Standard support |
| MariaDB 10.6 | 3 February 2022 | 31 December 2026 | Standard support, ending soon |
Setting up AWS RDS for MySQL
The console flow is the same as for other RDS engines. AWS notes that MySQL has a single edition option. The documented steps:
- In the RDS console choose Create database, then MySQL (or MariaDB) and an engine version. Easy create asks only for engine, size and identifier and uses defaults for the rest.
- Choose a template. The Production template preselects Multi-AZ, Provisioned IOPS (io1) storage and deletion protection.
- Set the DB instance identifier and master username, and either type a password or let AWS Secrets Manager manage it.
- Choose an instance class and storage. On gp3, AWS documents a baseline of 3,000 IOPS and 125 MiB/s, rising to 12,000 IOPS and 500 MiB/s from 400 GiB for MySQL and MariaDB.
- Under Connectivity, choose the VPC, subnet group and security group, and leave public access at No unless you have a reason to change it.
- Attach a custom DB parameter group if you need non-default settings, set backups and the maintenance window, and create the database.
The equivalent CLI call uses aws rds create-db-instance; the AWS CLI reference's own minimal example is --db-instance-identifier test-mysql-instance --db-instance-class db.t3.micro --engine mysql --master-username admin --master-user-password secret99 --allocated-storage 20. For real use add --engine-version, --storage-type gp3, --no-publicly-accessible, --vpc-security-group-ids and --manage-master-user-password instead of a plain-text password.
Networking and security groups
AWS recommends keeping databases private. Allow TCP 3306 in the instance's security group only from your application's security group or a known IP range, and reach a private instance from your laptop through a bastion host or VPN inside the VPC.
Connecting with the mysql client, MySQL Workbench or DBeaver
Find the endpoint and port on the instance's Connectivity & security tab; the default port for both RDS for MySQL and RDS for MariaDB is 3306. AWS notes that most Linux distributions ship the MariaDB client rather than Oracle's MySQL client; on Amazon Linux 2023 its documented install command is sudo dnf install mariadb105. Then connect with the documented form:
mysql -h <endpoint> -P 3306 -u <master user> -p
To encrypt the session, download AWS's certificate bundle and add --ssl-ca=global-bundle.pem --ssl-mode=REQUIRED, or VERIFY_IDENTITY to also check the host name. On the server side, AWS states that require_secure_transport is OFF by default; set it to ON in your parameter group to refuse unencrypted connections, with no reboot needed. MySQL Workbench is the GUI AWS documents; DBeaver, DataGrip and other clients use the same endpoint, port and credentials. See the best MySQL GUI tools.
RDS for MySQL best practices
- Use InnoDB for every table. AWS fully supports InnoDB and says point-in-time restore and snapshot restore require a recoverable engine and work with InnoDB only. Note too that
InnoDBis a reserved word on RDS for MySQL, so you cannot name a database that. - Upgrade off 8.0. Plan the move to 8.4 to stop Extended Support charges, and read AWS's 8.4 notes first:
caching_sha2_passwordis the default authentication plugin, andinnodb_dedicated_serveris enabled by default, so buffer pool and redo log sizes are calculated by the engine unless you override them. - Keep the working set in memory and watch
ReadIOPS, CPU, memory, replica lag and free storage with CloudWatch alarms, as the RDS best-practices page recommends. - Enable automatic backups in a low-write window, and test failover so you know how long the application takes to reconnect.
- Index for your queries. Most slow MySQL workloads are query and index problems first; see our SQL indexes lesson.
RDS MySQL or Aurora MySQL?
Both are MySQL-compatible, but they are built differently. A quick way to decide:
- Choose RDS for MySQL if you want behaviour closest to community MySQL, a single instance with EBS storage you size yourself, and the simplest pricing with no per-request I/O charges.
- Choose Aurora MySQL if you want storage that grows automatically and is replicated across three Availability Zones, up to 15 read replicas sharing that storage, Serverless v2 autoscaling, Global Database or Backtrack.
- Choose neither if your app depends on MyISAM features or OS-level access; then self-managed MySQL on EC2 fits better.
See Amazon Aurora vs MySQL, Amazon RDS vs Amazon Aurora and, if you are still choosing an engine, RDS MySQL vs RDS PostgreSQL or MySQL vs SQL Server.
Pricing
Prices from the provider's official pricing pages, checked 8 October 2026, region US East (N. Virginia), in USD, excluding tax. List prices only; discounts, commitments and your actual usage change the bill.
RDS for MySQL has no licence fee. The pricing page bills DB instance-hours (per second, 10-minute minimum after a billable change) for Single-AZ, Multi-AZ with one standby and Multi-AZ with two readable standbys, plus storage per GB-month, Provisioned IOPS, backup storage beyond the free allowance and data transfer. While an instance is stopped you pay for storage and backups but not instance-hours. RDS for MariaDB is billed on the same dimensions.
Instance-hour rates depend on the class and deployment; look them up for your class on the AWS pricing page or in the AWS Pricing Calculator. We list below only the rates AWS states in the text of the page, including the Extended Support rate that now applies to every MySQL 8.0 instance.
| Item | Rate (USD) | Note |
|---|---|---|
| RDS Extended Support, year 1 pricing | 0.100 per vCPU-hour | AWS example for US East (N. Virginia); added to the instance price |
| T4g and T3 CPU credits (Unlimited mode) | 0.075 per vCPU-hour | Only when average CPU exceeds the baseline |
| io1 storage, Single-AZ | 0.125 per GiB-month | From AWS's US East (N. Virginia) Dedicated Log Volume example |
| io1 Provisioned IOPS, Single-AZ | 0.10 per IOPS-month | Same example; Multi-AZ with one standby is 0.25 and 0.20 |
Estimate: Extended Support surcharge for a MySQL 8.0 db.r5.large
- MySQL 8.0 on a db.r5.large (2 vCPUs, as AWS's example states) in US East (N. Virginia), Single-AZ, running all month (730 hours).
- Year 1 Extended Support pricing, which for MySQL 8.0 started on 1 August 2026.
- Shows only the surcharge; the instance-hours, storage, backups and data transfer are billed on top.
| Item | Basis | Estimated per month |
|---|---|---|
| RDS Extended Support | 2 vCPUs x 0.100 USD x 730 hours | 146.00 USD |
| Estimated total | 146.00 USD per month on top of the normal instance price |
Worked examples are estimates calculated from the list prices above; they are not quotes or measured bills.
Frequently asked questions
Is MySQL 8.0 still supported on Amazon RDS MySQL?
Only under RDS Extended Support. AWS lists 31 July 2026 as the end of standard support for MySQL 8.0 and 31 July 2029 as the end of Extended Support. Instances on 8.0 keep running but incur a per-vCPU-hour charge until you upgrade to 8.4.
What is the difference between RDS MySQL and RDS MariaDB?
They are separate engines on the same Amazon RDS platform with the same billing model and management features. RDS for MySQL follows Oracle's MySQL Community releases; RDS for MariaDB follows MariaDB's releases, currently 10.6 to 12.3 under standard support.
Can I use MyISAM tables on RDS for MySQL?
RDS lets other engines exist, but AWS states that point-in-time restore and snapshot restore are supported for InnoDB only, so MyISAM tables are not protected the same way. Convert them to InnoDB before relying on RDS backups.
How do I connect MySQL Workbench to AWS RDS MySQL?
Create a connection with the instance endpoint as host name, the port and a database user. The instance must be reachable from your machine, either publicly accessible with a rule for your IP or through a VPN or bastion.
Does RDS MySQL support Multi-AZ with readable standbys?
Yes. The pricing page lists Multi-AZ deployments with one standby and with two readable standby instances for RDS for MySQL. The related Multi-AZ guide explains the difference.
Sources
- Amazon RDS User Guide: MySQL on Amazon RDS
- Amazon RDS User Guide: MySQL versions on Amazon RDS
- Amazon RDS User Guide: MariaDB versions on Amazon RDS
- Amazon RDS User Guide: MySQL feature support
- Amazon RDS User Guide: Known issues and limitations for RDS for MySQL
- Amazon RDS User Guide: Creating an Amazon RDS DB instance
- Amazon RDS User Guide: Installing the MySQL command-line client
- Amazon RDS User Guide: Connecting from the MySQL command-line client
- Amazon RDS User Guide: Connecting with SSL/TLS from the MySQL client
- Amazon RDS User Guide: Requiring SSL/TLS for all connections
- Amazon RDS User Guide: Storage
- AWS CLI reference: create-db-instance
- Amazon RDS for MySQL pricing
Checked 8 October 2026.
How we research cloud database guides: our editorial method. CodeWithSQL earns nothing from the providers mentioned.