I migrated the MySQL in my server from MySQL 5.7 to MariaDB 10.3 and the MySQL database, the one that controls users and passwords corrupted.
It has several tables that in the column "collation" says "in use" and are non accesible. When I try to inspect the content of the table it says: "#1932 - Table 'nameofthetable' doesn't exist in engine". Same message if I try to repair it or optimize it.
It seems I have to replace the DB with a correct version of it but I don't have a backup before the process. The table that controls users and passwords works correctly, but I can't assign/modify permissions for new users on any database serverwide.
The data of my server is:
- CentOS v7.9.2009 kvm
- cPanel Versión 100.0 (build 5)
- Apache Version 2.4.51
- MySQL Version 10.3.32-MariaDB
- Kernel Version 3.10.0-1160.49.1.el7.x86_64
EDIT to add information:
Used WHM migration feature. The problem is not in the DB server or even all this general administration database, but only in a few tables inside this database called "mysql" (yes, the DB is called "mysql"). I've repaired all other corrupted tables in all other databases in the server by deleting the broken tables via terminal and then uploading an sql of the now missing tables through phpmyadmin using the older tables from the backup before the migration. Technically is someone has a MariaDB 10.3 installation could help me sharing with me an sql of all that "mysql" database without the user/password tables.
Here is the list of the corrupted tables:
EDIT 2: This is the corrupt table: https://mariadb.com/kb/en/the-mysql-database-tables/
I guess I have to manually create the corrupted tables, but I don't know if I have to add some information into those tables