Replication Compatibility Between MariaDB and MySQL

You are viewing an old version of this article. View the current version here.

This page describes replication compatibility between MariaDB and MySQL. For replication compatibility details between different MariaDB versions, see Cross-Version Replication Compatibility.

Replication Compatibility

Replication compatibility depends on:

  • The MariaDB version
  • The MySQL version
  • The role of each server

Replicating from MySQL to MariaDB

MySQL 5.7

MariaDB 10.2 and later can replicate from a MySQL 5.7 primary server.

MariaDB does not support the MySQL implementation of Global Transaction IDs (GTIDs), so the MariaDB replica server must use the binary log file and position for replication. If GTID mode is enabled on the MySQL primary server, the MariaDB replica server will remove the MySQL GTID events and replace them with MariaDB GTID events.

Although MariaDB and MySQL 5.7 are compatible at the replication level, they may have some incompatibilities at the SQL level. Those differences can cause replication failures in some cases. To decrease the risk of compatibility issues, it is recommended to set binlog_format to ROW. When you want to replicate from MySQL 5.7 to MariaDB, it is recommended to test your application, so that any compatibility issues can be found and fixed.

MySQL 8.0

Prior to MariaDB 10.6.21, MariaDB 10.11.11, MariaDB 11.4.5 and MariaDB 11.7.2, MariaDB Server could not replicate from a MySQL 8.0 primary server, because MySQL 8.0 has a binary log format that is incompatible.

MariaDB 10.6.21, MariaDB 10.11.11, MariaDB 11.4.5, MariaDB 11.7.2 and newer can replicate from a MySQL 8.0 server as long as the following holds:

  • Columns of type JSON are not supported. One should change these to TEXT.
  • One should set binlog-row-value-options="". This disables the incompatible PARTIAL_UPDATE_ROWS_EVENT event.
  • One should set binlog_transaction_compression=0. This disables the incompatible TRANSACTION_PAYLOAD_EVENT event.
  • One should not use the MySQL 8.0 utf8mb4_ja_0900_... collations when replicating to MariaDB 10.6 - MariaDB 11.4.4. MariaDB 11.4.5 and above will support most of the MySQL 8.0 utf8mb4_ja_0900_... collations.

Replicating from MariaDB to MySQL

When replicating from MariaDB to MySQL, one should:

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.