前言
一:现象
- 在修改用户的时候发现报错:ERROR 1805 (HY000): Column count of mysql.user is wrong. Expected 45, found 46. The table is probably corrupted
二:分析原因
- 仔细想了下我之前的操作,原因是因为将mariadb的数据库完全备份恢复到了MySQL5.7中,由于版本不符,导致报错
三:解决
经过查阅资料,尝试通过升级的方式解决
-
发现仍然报错,通过登录数据库修改表结构解决第一个报错
-
"root@localhost Mon Apr 19 10:56:50 2021 10:56: [mysql]>ALTER TABLE `proc` -> MODIFY COLUMN `comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0
-
再次尝试升级,发现只有一个报错了
-
再次尝试解决这个报错,发现解决不了
-
所以我直接使用这个解决办法:备份user表,删除user表,在其他安装的MySQL5.7服务器上导出user表的表结构,然后导入导此数据库,问题解决!