1

We need to upgrade our DB to version 8, but we're getting an error in the migration log that's preventing us from upgrading.

Creating indexes larger than 767 bytes on tables with redundant row format might cause the tables to be inaccessible.

You have one or more tables with redundant row format. Creating an index larger than 767 bytes might cause the table to be inaccessible (only 50 tables are shown).

More Information: https://bugs.mysql.com/bug.php?id=99791

In order to upgrade, we would need to run the following query for 700 tables:

ALTER TABLE [SCHEMA.TABLE NAME] ROW_FORMAT=DYNAMIC;

Some tables are very large and this would take days to complete. We can't afford to be down for that long.

From what I read, the bug was resolved in version 8.0.22. Here's an excerpt from the change log:

InnoDB: A REDUNDANT row format table created in an earlier version of MySQL, where the row format was not defined explicitly, permitted the addition of an index that exceeded the REDUNDANT row format index column size limit. (Bug #31479542, Bug #99791)

How can we go about migrating from 5.7 to 8 without the error? Is there a way to upgrade to 8.0.22 in order to bypass the error?

1
  • What version are you trying to upgrade to? "Resolved" should mean that that warning message is no longer valid.
    – Rick James
    Commented Jun 8, 2023 at 19:17

1 Answer 1

1

I would use pt-online-schema-change to alter the large tables without downtime.

You can probably do many of the smaller tables in the conventional way with ALTER TABLE, because they will each finish very quickly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.