MySQL Major Version – Replication Support Between 5.1 and 5.6

MySQLmysql-5.1mysql-5.6replication

I am migrating from some MySQL 5.1 servers to MySQL 5.6 servers. The MySQL docs are a bit unclear if replication is supported between a 5.1 master and a 5.6 slave, and MySQL's documentation is unclear if this is supported.

In terms of version numbers, MySQL seems to follow the norms for semantic version numbers

  • 5.1 has a "Major version" of 5, and a "release level" of 1.
  • 5.6 has a "Major version" of 5, and a "release level" of 6.
  • MySQL 4, MySQL 5 and MySQL 6 would all be considered "Major versions".

This is documented at https://dev.mysql.com/doc/refman/5.6/en/which-version.html :

The naming scheme in MySQL 5.6 uses release names that consist of
three numbers and a suffix; for example, mysql-5.6.1-m1. The numbers
within the release name are interpreted as follows:

  • The first number (5) is the major version and describes the file format. All MySQL 5 releases have the same file format.

  • The second number (6) is the release level. Taken together, the major version and release level constitute the release series number.

https://dev.mysql.com/doc/refman/5.6/en/replication-compatibility.html says replication is supported between one major version and the next highest major version. This wording is pretty ambiguous if replication is supported between 5.1 and 5.6.

MySQL supports replication from one major version to the next higher
major version. For example, you can replicate from a master running
MySQL 4.1 to a slave running MySQL 5.0, from a master running MySQL
5.0 to a slave running MySQL 5.1
, and so on.

The updated 5.7 beta docs sort of simply that replication is only supported between release levels, although the manual uses the term "major version". What do they really mean here?

MySQL supports replication from one major version to the next higher
major version. For example, you can replicate from a master running
MySQL 5.0 to a slave running MySQL 5.1, from a master running MySQL
5.1 to a slave running MySQL 5.5
, and so on.

Is MySQL replication supported between MySQL 5.1 and MySQL 5.6? I understand that MySQL 5.1 is EOL on most platforms, but it's still shipped with RHEL6.

Best Answer

I've confirmed this is a bug with MySQL/Oracle Support. They will update the public tickets when the internal fixes are ready.

To summarize: MySQL replication is only supported between one release level (the second digit) and the next; e.g. between MySQL 5.1 and 5.5; 5.5 and 5.6 but not between MySQL 5.1 and 5.6. The documentation is mistaken when it says "MySQL supports replication from one major version to the next higher major version."* They mean release level or release series number, not major version. That is, unless they change the terminology in the future.

Replication between 5.1 and 5.6 might work, but it's not supported and not well tested. It's best to for replication servers to stay within one release level of each other, and to use the latest version of your 5.x release.

The bug reports are:

MySQL supports replication from one release series to the next higher release series. For example, you can replicate from a master running MySQL 5.5 to a slave running MySQL 5.6, from a master running MySQL 5.6 to a slave running MySQL 5.7, and so on.

  • A second private bug which I'll add once the bug is made public.