1

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.

  • Don't wish to be a smart ass here, but can you test? My guess is that it should work, but don't take my word for it! :-) – Vérace Jul 14 '15 at 8:22
  • I have tested this, and it seems to work, but there are occasional failures. This is why I was trying to figure out if I am running a supported configuration or not. – Stefan Lasiewski Jul 14 '15 at 18:37
  • Do you have an error log for the failures? I know that erratic failures are the worst! :-) Why not simply upgrade? That's the beauty of Open Source software! – Vérace Jul 14 '15 at 18:53
  • I am upgrading. I'm migrating from a live 5.1 cluster to a 5.6 cluster using replication. – Stefan Lasiewski Jul 14 '15 at 19:15
  • Taking down the server for a time is not possible? – Vérace Jul 14 '15 at 19:19
1

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.
-1

Not strictly an answer, but perhaps a very long comment:

MySQL is very similar to Mac OS X versioning. Mac OS X was first released in 2001. MySQL 5.0 in 2005. It would be just as unfair to compare OS X El Capitan to 10.0 as it would MySQL 5.7 to 5.0.

The History:

Version 6.0 of MySQL was canceled, and 7.x is the versioning scheme of MySQL Cluster, which makes it more confusing to pick a next number to use.

MySQL 5.6 contains more new lines of code than any release prior. Making the de facto major version number the first and second digit combined.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.