MySQL to MariaDB Migrator
The MySQL to MariaDB Migrator automates end-to-end MySQL to MariaDB migrations — schema, data, users, and validation — in four selectable modes.
The MySQL to MariaDB Migrator is a MariaDB tool that automates end-to-end migrations from MySQL to MariaDB in a repeatable, auditable way. It orchestrates schema migration, data transfer, user and privilege migration, and post-migration validation, and it drives the standard MariaDB client tools (mariadb-dump, the mariadb client, and the mariadb-mtk data-transfer engine) under a single launcher.
The migrator complements the manual workflows in the MySQL to MariaDB Migration: The Master Guide: the Master Guide explains the migration paths and the compatibility considerations, while the migrator automates the dump, load, user-migration, and validation steps for you.
Supported Versions
Source: MySQL 8.0 and 8.4 (some modes have version-specific requirements — see Migration Modes).
Target: supported MariaDB Enterprise and Community editions.
Accounts:
caching_sha2_passwordandsha256_passwordaccounts are carried across with their existing password hashes intact, so application users do not need password resets after cutover. See Application User Migration.MariaDB Cloud is validated as a target for the Offline Copy (
staged), Parallel Restartable Streaming Copy (two_step), and Serial Streaming Copy (one_step) modes.Platforms: the migrator is built and tested for Linux on x86-64 and ARM64, and for macOS on ARM64 (Apple silicon). macOS hosts require bash 4.4 or newer — see Installation and First Run.
Migration Modes at a Glance
The launcher presents four migration modes as a numbered menu. The internal identifier in parentheses is the canonical form used in configuration files, environment variables (MODE=...), and the command line (--mode <id>).
two_step
Offline
Larger datasets: loads tables concurrently, and splits large tables that have an AUTO_INCREMENT column
Each mode links to its step-by-step guide above. For the variable-level detail on all four modes in one place, see Migration Modes.
Choose a Guide
If you are not sure which mode fits, match your situation to a guide:
A small or medium database, a standard maintenance window is acceptable, and one host can reach both the source and the target
The source and target cannot reach each other (air-gapped or separate networks), or you want a checkpoint between the dump and the load
A large database where a single serial transfer is too slow, you can install the mariadb-mtk engine, and you can start from a clean target
Downtime must be minimal, the source uses binlog_format=ROW with no JSON columns, and you can perform a cutover
If more than one row fits, use this order: minimal downtime points to Replication (when the source qualifies); otherwise, if one host cannot reach both sides, use Offline Copy; otherwise choose Serial Streaming Copy for a small or medium database and Parallel Restartable Streaming Copy for a large one.
How the Tool Runs
When launched interactively, the migrator first offers two top-level choices:
Assess & Plan — inspect the source and target, validate connectivity and compatibility, and produce an assessment report and a migration plan. No data is moved and nothing is written to the target.
Assess + Run — assess the source, then proceed to the full migration, with confirmation steps between phases.
Preview a migration with Assess & Plan before committing to it; the assess and plan phases write their artifacts under artifacts/ and leave the target untouched.
AI-Assisted Operation via MCP
The migrator can also be operated by an AI agent through the MariaDB Shell MCP server, which exposes tools to configure, plan, run, and resume a migration.
Requirements:
A Linux or macOS host. The MCP path is not available on Windows.
The migrator installed, with
mariadbandmariadb-dumpon thePATH.The plugin installed with
mariadb-shell -- mcp setup --installMigrator, followed by a restart of the MCP server. The migrator tools register only when the server next starts, so an agent that reports nomigrator.*tools needs the restart.Both the source and the target registered as configured MCP connections.
Two behaviors are worth knowing in advance:
Passwords can never be set in the configuration the agent writes. They are resolved from the MariaDB Shell secret store when the migration runs, so never put a password in a prompt.
A connection that cannot be authenticated does not produce an error. Password lookups use the full connection URI, host and port included, and a connection whose lookup fails is simply not offered as a data source. Specify the port on each connection. (Run directly, the launcher stops with a connection error instead.)
For a full walkthrough, see the MySQL to MariaDB migration tutorial.
In This Section
Start with the reference pages to understand how the tool installs, runs, and handles users:
Installation and First RunMigration ModesApplication User MigrationEnvironment VariablesThen follow the step-by-step guide for your mode:
Migrate with Serial Streaming CopyMigrate with Offline CopyMigrate with Parallel Restartable Streaming CopyMigrate with ReplicationFeedback
Join the MariaDB Community on Slack to share your feedback.
License
The MariaDB Software License Terms apply to all MariaDB Software unless otherwise stated. They do not alter the license terms of any free and open-source software (FOSS) or software subject to the Business Source License (BSL); see Section 7 of the MariaDB Software License Terms.
For additional legal information, see the MariaDB Terms.
See Also
An Easy Path from MySQL to MariaDB • blog post • 2026 • 4 minutes
Migrating from MySQL to MariaDB? Meet the MariaDB Migrator • video • 2026 • 8 minutes
This page is licensed: CC BY-SA / Gnu FDL
Last updated
Was this helpful?

