Skip to main content

Menu

Webinar

Built for the Agentic Era: Introducing MariaDB Enterprise Platform 2027

Register now

What a careful MySQL to MariaDB migration still misses

By Michael Aglietti

12 min read
Share

Key takeaways

  • Hidden Engine Differences: Standard migration tools often miss subtle gaps in authentication plugins and schema functions, leading to locked application accounts or unexpected cutover failures.
  • Automated Migration Safeguards: Specialized workflows in tools like the MariaDB Migrator safely preserve user access and maintain live data sync without altering or risking your source database.
  • Proactive Risk Mitigation: Running a free, read-only assessment upfront lets you catch and fix database compatibility issues early instead of troubleshooting live outages during high-stress maintenance windows.
Application user migration summary
Roles created on target : 1
Users migrated with original password: 1
Users migrated with default password : 1 <- PASSWORD EXPIRE set
Users skipped (non-password plugin) : 0 <- manual handling
Users that failed to migrate : 0
Grants attempted : 5
Grants successfully replayed : 4
Grants dropped (incompatible) : 1
...
--- Users with password reset to default (PASSWORD EXPIRE set) ---
'shop_app'@'%' (source plugin: caching_sha2_password)
Note: Users will be prompted to set a new password on first login.

--- Grants dropped (incompatible with MariaDB) ---
'shop_app'@'%' -- GRANT APPLICATION_PASSWORD_ADMIN ON *.* TO `shop_app`@`%`
-- on MariaDB 11.4
SELECT @@gtid_mode;
ERROR 1193 (HY000): Unknown system variable 'gtid_mode'

-- on MySQL 8.0
SELECT @@gtid_current_pos;
ERROR 1193 (HY000): Unknown system variable 'gtid_current_pos'
Applying replication coordinates: mysql-bin.000003:6922
Replication started.
...
IO running: Yes
SQL running: Yes
Seconds behind master/source: 0
Replication verify passed.
         Seconds_Behind_Master: 0
Using_Gtid: No
==> Preflight checks (binlog)
Checking source schemas for JSON columns...

ERROR: Replication mode is not compatible with JSON columns in the source schema.

Detected JSON columns:
shopdb.customers.profile
shopdb.orders.attrs

JSON column types are not supported for online replication-based migration.
Please use one of the offline migration modes:

- Serial Streaming Copy
- Parallel Streaming Copy
- Offline Copy
[HIGH  ] generated_columns_present              2
legacydb audit_events event_bin STORED GENERATED uuid_to_bin(`event_uuid`)
shopdb orders line_total STORED GENERATED (`qty` * `unit_price`)
[HIGH ] server_collation_0900 utf8mb4_0900_ai_ci
[MEDIUM] mysql8_table_collations_present 3
legacydb audit_events utf8mb4_0900_ai_ci
shopdb customers utf8mb4_0900_ai_ci
shopdb orders utf8mb4_0900_ai_ci