Each major release of MySQL changes the MySQL schema in some respects
For example, in the post I answered (MySQL service stops after trying to grant privileges to a user), I mentioned how
mysql.user has a different number of columns.
Here is the updated list of the column counts
When you run this query
SELECT COUNT(1) column_count FROM information_schema.columns
WHERE table_schema='mysql' AND table_name='user';
You should the following number
- If you get 45, MySQL 5.7
- If you get 43, MySQL 5.6
- If you get 42, MySQL 5.5
- If you get 39, MySQL 5.1
- If you get 37, MySQL 5.0
When you restore a MySQL 5.6 backup into a MySQL 5.7 server, there may be a physical misalignment of grants to deal with.
MySQL SCHEMA FILES
The number of InnoDB tables in the MySQL schema also changes between major releases.
Dec 09, 2017, I answered ERROR 1031 (HY000): Table storage engine for 'proc' doesn't have this option and discussed when InnoDB tables starting being used in the MySQL schema.
In MySQL 5.6, it was 5 tables. In MySQL 5.7, it went to 19. In MySQL 8.0, all 31 tables are InnoDB.
Your may have to run some kind of
mysql_upgrade commands to perform the transformation of tables from MyISAM to InnoDB right after to xtrabackup is restored