MySQL 8.0 end of life: upgrading to 8.4
Oracle ended support for MySQL 8.0 in April 2026, and Amazon RDS followed in July. Here is what that costs you if you stay, and how to move to 8.4 LTS without the application losing its connection.
- Oracle support
- Ended April 2026, 190 days ago
- Amazon RDS
- Standard support ended 31 July 2026; paid Extended Support to July 2029
- Move to
- MySQL 8.4 LTS (to April 2032), later 9.7 LTS
- Path
- In place or by replica, 8.0 → 8.4. No way back without a backup
What end of life means for 8.0
There are no more MySQL 8.0 releases, so flaws found from now on stay open. Database servers are rarely exposed to the internet, which makes this less urgent than an old web server, but security questionnaires and auditors ask about it all the same.
On your own servers, where MySQL came from matters. Ubuntu 22.04 and 24.04 ship 8.0 and Canonical keeps patching its package while those releases are supported. MySQL from Oracle's own repository follows Oracle's dates and has stopped.
On Amazon RDS, staying on 8.0 now costs money. Extended Support is added per vCPU per hour, and the rate rises after the first two years, so it soon costs more than the upgrade.
What changes from 8.0 to 8.4
8.4 is a smaller step than 5.7 to 8.0 was. These are the changes that cause most of the trouble.
| Area | What changed | What to watch |
|---|---|---|
| Logins | mysql_native_password is no longer loaded by default | Applications and users on the old plugin cannot connect. Find them with SELECT user, host, plugin FROM mysql.user; and move them to caching_sha2_password, checking old client libraries support it. |
| Replication | The old MASTER and SLAVE commands are gone | CHANGE MASTER TO, SHOW SLAVE STATUS and the like are replaced by CHANGE REPLICATION SOURCE TO and SHOW REPLICA STATUS. Monitoring checks and scripts need updating. |
| Foreign keys | Foreign keys must point at a unique key | New foreign keys onto non-unique columns are refused by default. Old schemas that rely on them need checking before migration scripts run. |
| Defaults | Several InnoDB settings changed their defaults | innodb_io_capacity rises from 200 to 10,000, the adaptive hash index and change buffering are off, and thread and buffer pool instance counts now follow the CPU count. Compare performance on the rehearsal copy rather than assuming it matches. |
| Removed options | Some server options and variables were removed | A my.cnf with a removed option stops MySQL starting. The upgrade checker lists them. |
How to upgrade
Run the upgrade checker first. MySQL Shell's util.checkForServerUpgrade(), pointed at the 8.0 server, lists the problems in your schema and configuration before anything changes.
Fix the accounts. Move every account the application uses off mysql_native_password, and check the client libraries in each language you use support the newer plugin.
Take a backup you have restored. There is no downgrade from 8.4 to 8.0, so the backup, or a replica left on 8.0, is the only way back.
The safest route is a replica. Build an 8.4 replica of the 8.0 server, point a copy of the application at it to test, then switch the application over in a short window. The old server stays as it was until you are sure.
On RDS, a blue/green deployment does the same thing: it builds an upgraded copy that stays in sync, and switches over in about a minute.
How I run the move
- 01Inventory and a fixed quote
Every database, the applications and accounts that use it, and which of the changes above will bite. Then a fixed quote.
- 02Rehearsal on staging
A copy upgraded or rebuilt first, every site and job tested, every problem fixed there.
- 03The window, with a way back
The real move at a time you agree, the old server or a snapshot kept ready, then two weeks' stabilisation.
Upgrades and migrations →
Questions
When did MySQL 8.0 reach end of life?
In April 2026, when Oracle ended its support for the 8.0 series. There are no more community releases with security fixes.
What happened to MySQL 8.0 on Amazon RDS?
RDS standard support for 8.0 ended on 31 July 2026. Instances that were not upgraded were enrolled in RDS Extended Support, which is charged per vCPU per hour on top of the instance price and runs to July 2029.
Should I upgrade to MySQL 8.4 or 9.7?
From 8.0, go to 8.4 LTS first: upgrades are supported from one LTS series to the next, so 9.7 is a second step. Oracle supports 8.4 to April 2032 and 9.7, released in April 2026, to April 2034 (Premier Support ends three years earlier for each).
Can I downgrade from 8.4 back to 8.0?
No. Once the data directory has been upgraded there is no in-place way back, so the rollback plan is a backup or snapshot taken just before, or a replica left on 8.0.
Why can't my application log in after upgrading to 8.4?
Almost always the mysql_native_password plugin, which 8.4 no longer loads by default. Move the account to caching_sha2_password (and update old client libraries), or turn the plugin back on as a stopgap.
Is MariaDB a way out?
It can be, but it is a migration rather than an upgrade: MariaDB and MySQL have drifted apart since 8.0. Moving to MySQL 8.4 is usually less work.
Still on MySQL 8.0?
Tell me what runs on it. I'll tell you what will break on 8.4 and give you a fixed quote for the upgrade.