Upgrade checklist for 8.4¶
Thorough preparation and validation reduce risk more than any cutover tactic. Use this checklist to guide your upgrade from 8.0 to 8.4, validating each item in staging before upgrading production.
Pre-upgrade checks¶
Complete these checks before starting the upgrade process.
Authentication and connectivity¶
Impact: mysql_native_password is disabled by default in 8.4; default_authentication_plugin is removed. New accounts default to caching_sha2_password. The mysql_native_password plugin can still be loaded using --mysql-native-password=ON if needed, but it will be completely removed in the MySQL 9.x series.
Action:
- Inventory accounts and applications that still use
mysql_native_password. - Verify drivers/clients support
caching_sha2_passwordand TLS as configured. - Plan account migration to
caching_sha2_password. If temporary compatibility is needed,--mysql-native-password=ONcan be used, but plan migration as this plugin will be removed in future versions. - See: authentication methods
Replication and operational scripts¶
Impact: MASTER/SLAVE syntax is removed; use SOURCE/REPLICA commands.
Action:
- Search and update scripts:
START REPLICA,SHOW REPLICA STATUS,CHANGE REPLICATION SOURCE TO. - Validate Orchestrator/HA tooling versions for 8.4 syntax.
- Update Percona Toolkit calls: replace
pt-slave-findwithpt-replica-find, andpt-slave-restartwithpt-replica-restart; removept-slave-delayusage. - See: Percona Toolkit updates for 8.4
Removed features and variables¶
Impact: Several legacy statements, status counters, variables, and functions are removed in 8.4.
Action:
- Replace MASTER/SLAVE statements and counters with SOURCE/REPLICA equivalents.
- Migrate from
expire_logs_daystobinlog_expire_logs_seconds. - Replace
WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS()withWAIT_FOR_EXECUTED_GTID_SET(). - Remove dependencies on built-in memcached variables/APIs.
- See: Breaking and incompatible changes in 8.4
Reserved keywords in identifiers¶
Impact: New reserved words (for example, MANUAL, PARALLEL, QUALIFY, TABLESAMPLE) can break schemas and queries.
Action:
- Scan object names and queries for unquoted usage; quote or rename as needed.
- See: Keywords and Reserved Words in MySQL 8.4 for the complete list of reserved keywords.
Schema constraints¶
Impact: AUTO_INCREMENT is not allowed on FLOAT/DOUBLE.
Action:
- Identify and convert any
FLOAT/DOUBLEAUTO_INCREMENTcolumns to integer types prior to upgrade.
Configuration defaults review¶
Impact: 8.4 changes several InnoDB defaults for modern hardware; old 8.0 configs may not be optimal and can cause behavior changes.
Action:
- Compare your overrides to 8.4 defaults; remove obsolete settings and re-evaluate IO/log parameters.
- See: Defaults and tuning guidance for 8.4
Spatial indexes¶
Impact: A known issue may corrupt a spatial index after certain update/delete sequences across upgrade.
Action:
- Drop spatial indexes before upgrade (document which ones for post-upgrade re-creation).
- Plan to re-create spatial indexes after upgrade completion.
Backup and recovery rehearsal¶
Action:
- Take a hot backup with Percona XtraBackup; document restore steps and timings.
- Restore into a clean 8.4 environment; validate startup and metadata upgrade.
- See: Backup and restore overview
Behavior comparison and testing¶
Action:
- Use
pt-upgradeto compare query plans/behavior between 8.0 and 8.4. - Run application smoke and load tests against a restored 8.4 copy.
Plugins to components transitions¶
Impact: Some 8.0 plugins are removed or replaced by components in 8.4.
Action:
- If a component exists in 8.0 (for example, data masking), transition in 8.0 before upgrading.
- Plan configuration changes from plugin variables/
--early-plugin-loadto component manifests/config files. - See: Upgrade from plugins to components
Rollback feasibility¶
Action:
- Define a rollback path (for example, keep 8.0 environment on standby or validate point-in-time recovery to 8.0-compatible readers if applicable).
- Confirm cutover/rollback runbooks with approvers.
Post-upgrade validation¶
Run these checks immediately after upgrading from 8.0 to 8.4 and before widening traffic.
Connectivity and authentication¶
- Verify application logins for every service account.
- Confirm new account creations default to
caching_sha2_passwordas expected.
Replication health (if applicable)¶
- Confirm
SHOW REPLICA STATUSreports healthy IO/SQL threads. - Exercise planned failover and change-source procedures.
Spatial indexes¶
- Re-create any spatial indexes dropped pre-upgrade.
- Run integrity checks and representative spatial queries.
Workload and performance baselines¶
- Re-run baseline queries and workload tests; compare latency and throughput.
- Review changes in 8.4 defaults that can affect performance (optimizer/costing, redo/undo, IO settings) and tune as needed.
- See: Defaults and tuning guidance for 8.4
Logs and observability¶
- Review error logs and warnings post-startup and during smoke tests.
- Inspect Performance Schema metrics and application SLOs for regressions.
Backup and recovery¶
- Take a fresh full backup with Percona XtraBackup.
- Optionally perform a spot restore test to validate recovery on 8.4.
Further reading¶
- Upgrade overview
- Upgrade procedures for 8.4
- Upgrade strategies
- MySQL upgrade paths and supported methods
- Upgrade from plugins to components
- Upgrade to Percona Server for MySQL Pro
- Downgrade options
- Breaking and incompatible changes in 8.4
- Compatibility and removed items in 8.4
- Defaults and tuning guidance for 8.4
- Percona Toolkit updates for 8.4