Version and Topology Inventory
Server version and edition or managed service, the replication topology, and the tools, jobs and applications that share each instance.
MySQL Upgrades
Last reviewed by Tyler Eastridge
AceMQ plans and runs MySQL upgrades from 5.7 and 8.0 to 8.4 LTS on self-managed servers, Amazon RDS, Aurora and Azure: the supported path, the 8.4 breaking changes checked against your schema, accounts and replication, a rolling rollout with a tested rollback, and a cost comparison against Extended Support. MySQL 8.0 reached end of life in April 2026, and an LTS series cannot be skipped. AceMQ sells the upgrade, not patched builds, and says so when staying on 8.0 is the better call.
Is This You?
We run MySQL 5.7 and have not planned the two steps it takes to reach 8.4
RDS or Azure now bills Extended Support for our 8.0 instances and nobody has priced the upgrade against it
We tried 8.0 to 8.4 on a copy and the upgrade failed on a table or an account
Some applications still log in with mysql_native_password and nobody can say which
Our replicas run a different version from the primary and the topology has no documented upgrade order
A change board wants a rollback plan that does not depend on a downgrade
Someone suggested staying on 8.0 with patches and nobody has compared that with upgrading
Outcomes
Concrete state changes, not deliverable counts. This is what actually differs about your MySQL estate when the engagement closes.
Before
The upgrade plan is one line: move to 8.4.
A step list from your exact version, with the order of servers, the check run on a copy and a named owner for each step.
Before
Breaking changes are discovered when an application fails to connect.
Accounts, scripts, runbooks and drivers checked against the 8.4 changes before the first server restarts.
Before
The cost of waiting is a guess.
A side-by-side of your platform's Extended Support charge against the upgrade, using your instance count and the live price list.
Scope
Server version and edition or managed service, the replication topology, and the tools, jobs and applications that share each instance.
MySQL Shell's Upgrade Checker Utility, which the MySQL documentation recommends before any upgrade, run against a restored copy, with its findings ranked by what would stop the upgrade.
Authentication plugins, removed replication statements, removed variables and utilities, and AUTO_INCREMENT on floating-point columns, checked against your accounts, scripts and schema.
The order of replicas and source, the switchover, and what each replica runs at each step, following the rolling scheme in MySQL's replication upgrade documentation.
A rollback that does not rely on a downgrade: a restore you have timed, or a replica kept on the old version until acceptance, with the point of no return stated.
What waiting costs on RDS, Aurora or Azure for your instance count, against the upgrade, from the platform's own price list on the day.
Client libraries, ORMs and connection pools that depend on the old authentication plugin or removed statements, listed per application with the change each needs.
Updated failover, backup and restore runbooks written for 8.4, and a working session with your DBAs so the result outlasts the engagement.
The Engagement
Every phase has a defined duration and a concrete artifact handed over at the end of it. You always know what stage you're in and what you've received.
Inventory of versions and topology, plus the Upgrade Checker run on a restored copy. Read-only: nothing in production changes and you keep every credential.
You receive
The path from your version, the order of servers, the rollback for each step and, on a managed platform, the cost comparison. One decision at the end: upgrade now, or stay and why.
You receive
The upgrade is run on a restored copy that mirrors production, including the rollback, so the production window holds no first attempts. Applications are tested against the upgraded copy.
You receive
AceMQ and your DBAs run the production change together, then hand over updated runbooks and monitoring, with optional 24/7 support or managed operation afterwards.
You receive
MySQL's long-term-support series cannot be skipped. The 8.4 documentation says so in its own example: to go from 5.7 to 8.4, upgrade to 8.0 first and then to 8.4. Where you start decides how many changes there are.
| Starting point | Path | Note |
|---|---|---|
| MySQL 5.7 | 5.7 to 8.0, then 8.0 to 8.4 | Two upgrades, each with its own checker run and rollback; the 8.0 stop can be short |
| MySQL 8.0 | 8.0 to 8.4 LTS | In-place, logical dump and load, or replication; the usual case |
| MySQL 8.4 LTS | 8.4 to 9.7 LTS | Supported; 8.0 cannot go straight to 9.7 |
| An Innovation release | To the next LTS series, for example 8.3 to 8.4 | Innovation releases are supported only until the next one ships |
| Going back to an older series | Not a path to rely on | MySQL's documentation allows moving 8.0 back to 5.7 only by restoring a backup, so the rollback is designed around backups and replicas |
| Series | General availability | Premier Support to | Extended Support to |
|---|---|---|---|
| MySQL 5.7 | October 2015 | October 2020 | October 2023 |
| MySQL 8.0 | April 2018 | April 2025 | April 2026 |
| MySQL 8.4 LTS | April 2024 | April 2029 | April 2032 |
| MySQL 9.7 LTS | April 2026 | April 2031 | April 2034 |
Most 8.0 to 8.4 failures come from a short list of removals. They are cheap to find on a copy and expensive to find in a change window.
| Change in 8.4 | What fails | What we check |
|---|---|---|
| mysql_native_password is no longer enabled by default | Accounts and clients still using that plugin cannot authenticate | Accounts by plugin, driver versions, and whether to enable it with --mysql-native-password=ON as a stopgap while clients move to caching_sha2_password, the 8.0 default |
| CHANGE MASTER TO, RESET MASTER, SHOW MASTER STATUS and PURGE MASTER LOGS removed | Scripts, runbooks and monitoring that use the old statements error out | Every script and orchestration step, rewritten to CHANGE REPLICATION SOURCE TO, RESET BINARY LOGS AND GTIDS and the other new forms |
| mysql_upgrade and mysqlpump removed | Old upgrade steps and backup jobs fail | Backup jobs moved to mysqldump or MySQL Shell's dump utilities |
| expire_logs_days removed | A configuration file that sets it stops the server starting | Option files, moved to binlog_expire_logs_seconds |
| FLUSH HOSTS removed | Scripts that clear the host cache fail | Replace with TRUNCATE on performance_schema.host_cache or mysqladmin flush-hosts |
| AUTO_INCREMENT on FLOAT or DOUBLE columns no longer allowed | The upgrade itself fails until the table is fixed | A schema scan on the copy, before any change window |
| Several InnoDB default values changed | Performance can change with no error | Variables compared against a baseline, and a workload replay |
Accounts keep the authentication plugin stored for them, so a client that still depends on mysql_native_password fails at login after the upgrade, not during it. That is why account and driver inventory belongs in the rehearsal and not in the change window.
Order we hold
Checker on a copy first, rehearsal second, production last. A platform change, a version upgrade and a change in how applications connect are separate windows, each with its own way back.
MySQL's documentation upgrades a replication topology with a rolling scheme in which each server is moved by one of the supported single-server methods. Replicas go first and the source last, because a newer replica can replicate from an older source but not the other way round.
How long writes are interrupted depends on your failover tooling and your applications' reconnect behaviour, not on MySQL alone. The plan states the exposure for each step, and the rehearsal measures it.
On a managed platform, staying on MySQL 8.0 after the provider's standard support ends is a monthly charge, not a free choice. The dates below are each provider's own.
| Platform | Version | Standard support ends | Extended Support |
|---|---|---|---|
| Amazon RDS for MySQL | 8.0 | 31 July 2026 | Charged from 1 August 2026, year-3 pricing from 1 August 2028, ends 31 July 2029 |
| Amazon RDS for MySQL | 8.4 LTS | 31 July 2029 | Extended Support ends 31 July 2032 |
| Amazon RDS for MySQL | 5.7 | 29 February 2024 | Charged from 1 March 2024, year-3 pricing from 1 March 2026, ends 30 June 2029 |
| Azure Database for MySQL | 8.0 | 31 January 2027 | 1 February 2027 to 31 May 2029, billed per vCore-hour |
| Azure Database for MySQL | 5.7 | 30 September 2026 | 1 October 2026 to 31 March 2029, billed per vCore-hour |
| Amazon Aurora MySQL | 3 (8.0) | 30 April 2028 | 1 May 2028 to 31 July 2029; Aurora keeps its own calendar for 8.4, so read it for your version |
On RDS the charge is per vCPU-hour, depends on the version, the Region and the years since standard support ended, applies to Multi-AZ standbys and replicas, and is not reduced by Reserved Instance discounts. AceMQ prints no rate because the providers publish and change their own. The comparison uses your instance count and the price list on the day it is made.
Not every 8.0 server should move this quarter. Three cases hold up:
If you stay, you need patches: Oracle's own are available under its support terms, and OSSeva supplies patched builds of MySQL 5.7 and 8.0 Community. AceMQ's 24/7 support covers the version you run, and AceMQ does not sell patched builds.
Typical engagements
Typical engagement scenarios: what the work covers and what it delivers. They describe the service, not past results.
Digital Commerce Platform
Emergency remediation of a Memcached tier evicting hot keys while reporting free memory, traced to slab class allocation.
B2B SaaS Platform Provider
Assessment of Memcached sizing, key distribution, and hit rate to determine whether adding capacity would actually help.
Global Payments Processor
Consulting engagement to design multi-region Memcached topology, key namespacing, and invalidation strategy for a latency-sensitive platform.
E-Commerce Marketplace Operator
Resolving replica lag that grew to hours during batch windows because single-threaded apply could not keep pace with large multi-row transactions.
Travel Booking Platform
Ongoing support for deadlocks and lock wait timeouts under booking concurrency, including history list growth from long-running transactions.
Managed Hosting Provider
Planning and executing a major version upgrade including character set migration and online schema changes on large tables using gh-ost.
Media Streaming Provider
Review of replication topology, failover readiness, backup recoverability, and configuration drift across a MySQL estate that had grown organically.
Online Travel Platform
Ongoing support for a MySQL change data capture pipeline that needed a full re-snapshot after a planned outage outlasted binlog retention and a trimmed schema history topic.
FAQ
No. MySQL's documentation says an LTS or bugfix series cannot be skipped, and uses 5.7 to 8.4 as its own example: upgrade to 8.0 first, then to 8.4. AceMQ plans both steps together, runs the checker for each, and keeps the stop on 8.0 as short as the testing allows.
Yes. The community 8.0 line reached end of life in April 2026, and Oracle's Lifetime Support Policy lists 8.0 Extended Support to April 2026. Your platform may differ: Amazon RDS ended standard support for 8.0 on 31 July 2026 and now charges for Extended Support, which runs to 31 July 2029, and Azure's 8.0 standard support ends on 31 January 2027.
MySQL's documentation supports moving 8.0 back to 5.7 only by restoring a backup, and AceMQ designs every upgrade the same way: a restore whose time you have measured, or a replica kept on the old version until acceptance. The plan names the point after which a rollback is a restore, so the change board knows it before approving.
Then the plan says so, with the reason and a date to revisit. While you stay, AceMQ's 24/7 MySQL support covers the version you run; AceMQ does not sell patched builds.
AceMQ plans and drives the upgrade there: the checker run on a restored copy, the application and driver review, the order of instances and replicas, and the Extended Support comparison. The provider performs the engine upgrade in its own console or API. Aurora keeps its own release calendar, which AceMQ reads with you.
Let's talk
Tell us your MySQL versions, where they run, and whether you use replication. We reply within 1 hour and follow with a written scope and quote.
Send us a message and we'll follow up within 1 hour — or book a free 30-min consultation directly.
305-204-2607info@acemq.comPrefer to talk now? Call us directly or use the consultation tab to find a time that works.