MySQL 8.0.26 won't start after upgrading from MySQL 5.7

Hi there,
Copy/pasting from error log:

2023-11-07T16:25:59.278580Z 1 [System] [MY-011012] [Server] Starting upgrade of data directory.
2023-11-07T16:25:59.278660Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-11-07T16:25:59.566692Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-11-07T16:25:59.715827Z 1 [ERROR] [MY-011006] [Server] Got error 197 from SE while migrating tablespaces.
2023-11-07T16:25:59.718009Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2023-11-07T16:25:59.718297Z 0 [ERROR] [MY-010119] [Server] Aborting

Any clue how to fix the above issue?
Thanks,
Vamsi

hello @Vamsi_P So it seems you created a backup from a MySQL 5.7 instance, and you’re trying to start it with MySQL 8.0? it that correct ? if yes that won’t work you need to first prepare and start MySQL 5.7 with your backup, and later on you can perform the in-place upgrade.
Please check this (and related links in there) for tips. Thanks

Thanks for your response, but I am not trying to start Mysql 8.0 on a backup taken from MySQL 5.7. I have MySQL 5.7 replica that I am upgrading by stopping replication, doing upgrade check to see if all tables show as OK, shutting down Mysql 5.7, uninstalling 5.7, installing 8.0 and starting.
So far I have tried to upgrade 10 different databases. 8 have upgraded fine but 2 ran into this issue.
Thanks,
Vamsi

what is in the log before ,Starting upgrade of data directory. can you share couple more lines from the error logs thanks

There are only a few lines before that as pasted below:

2023-11-07T01:20:36.014006Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as I

t' is deprecated and will be removed in a future release.

2023-11-07T01:20:36.014028Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will b

e merged with strict mode in a future release.

2023-11-07T01:20:36.015429Z 0 [Warning] [MY-010101] [Server] Insecure configuration for --secure-file-priv: Location is accessible to all OS users. Consider choosing a different dire

ctory.

2023-11-07T01:20:36.015499Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.26-17) starting as process 89750

2023-11-07T01:20:36.022339Z 1 [System] [MY-011012] [Server] Starting upgrade of data directory.

@Vamsi_P Did you run the 8.0 upgrade checkerr on 5.7 before attempting to upgrade? If not, I would 100% recommend you do this. I found a bug https://bugs.mysql.com/bug.php?id=97295 that has you same error that mentions missing .ibd files. The upgrade checker should catch such issues. If that is the case, you will have to perform a 5.7 dump → 8.0 load in

Thanks for your response Matthew. However, the error log in that bug shows errors such as

... [MY-012592] [InnoDB] Operating system error number 2 in a file operation.
... [MY-012593] [InnoDB] The error means the system cannot find the path specified.
... [MY-012216] [InnoDB] Cannot open datafile for read-only:

I don’t see such errors in my errorlog.

I had run mysqlcheck with --all-databases and --check-upgrade options before shutting down MySQL 5.7. It showed OK for all the tables that it checked. Is the upgrade checker you mentioned different from what I ran?

Thanks!

Yes, the MySQL upgrade checker utility is different. You are actually performing the MySQL check operation, whereas the MySQL upgrade utility tool will let you know all the incompatible things, warnings, and errors that need to be fixed in 5.7 database before attempting to upgrade the database to 8.0.

Please check the below blog and the reference manual page to get more info about the MySQL Upgrade Checker utility.

Reference Manual : https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-upgrade.html

Blog : Upgrading to MySQL 8? Meet the MySQL Shell Upgrade Checker Utility