Upgrading Percona MySQL 5.6 to 8.0 with Less Downtime


I am currently using Percona Server for MySQL 5.6.
The server configuration consists of 3 units
・1 Master
・2 Standbys (that can be stopped.)

I want to upgrade Percona MySQL from 5.6 to 8.0.
The problem is that we want to minimize downtime.

I prepared 5.7 and 8.0 environments and thought of a way to synchronize with a chained replication configuration, but MySQL does not support mixed-version replication.

5.6 → 5.7 → 8.0

Is there a better way in Percona MySQL?

This is absolutely correct! MySQL fully supports this. Set this up, use pt-table-checksum to check 5.6/5.7 and then repeat to check 5.7/8.0. If all of the data is the same, then you can cut over to 8.0 when you wish and remove the 5.6 and 5.7.

Thank you!
I would like to use the “pt-table-checksum” that I received in my reply!

Regarding migration from 5.6 to 8.0, it is desirable to be able to complete it in one maintenance.

Therefore, it would be very nice to be able to synchronize data to 8.0 in near real time while keeping the 5.6 environment running.

Mixed replication of 5.6 → 5.7 → 8.0 is deprecated in MySQL, so if you have a good idea, please let me know.


That is incorrect. It is not deprecated. Doing a chain of replication like this is the correct, best-practice, and recommended way to upgrade from 5.6 to 8.0.

Yes, that is why you would set up replication from 5.6->5.7->8.0. That will keep replication/synchronizing in real time from your current production to the new 8.0.

The good news is that mixed replication is possible.
One thing that bothers me is that the official MySQL documentation has the following description.


if you are using a chained or circular replication setup, you cannot use MySQL 8.0.22, MySQL 8.0.24, and MySQL 8.0.28 concurrently, although you could use any two of these releases together.

If there is no problem with chain replication of 3 or more versions of Percona, I would like to proceed with the version upgrade by setting up replication of 5.6->5.7->8.0.

That message says don’t create a chain using those 3 specific versions. You can create chained replication using 5.6, 5.7, and 8.0.