正如@Mae在下面建议的那样,请确保在执行这些步骤之前停止服务器。
正如@Sarel建议的那样,这个解决方案执行了我在下面所做的所有步骤,但是采用了MySQL方式,这可能是最安全的。
代码语言:javascript复制mysqld --upgrade=FORCE升级
服务器升级数据字典、性能架构和INFORMATION_SCHEMA
谢谢,萨雷尔!
我上一篇用于历史使用的文章:
我在没有考虑的情况下将DB备份还原到我的新的dev MySQL 8系统中,并覆盖了MySQL数据库表。这并不是很难修复,但只是花了一点黑客对它进行了一段时间,这是什么修复了它。
代码语言:javascript复制alter table mysql.db ENGINE=InnoDB;
alter table mysql.columns_priv ENGINE=InnoDB;在那之后,我能够创建一个没有问题的用户。
钥匙在错误信息中。
代码语言:javascript复制ERROR 1726 (HY000): Storage engine 'MyISAM' does not support system tables. [mysql.db]所以我知道是mysql.db,它是MyISAM,需要成为其他的东西,所以我就把它改成了InnoDB。
希望这能帮到别人!
如果您的MySQL数据库是错误的类型将工作或其他选择将是初始化您的db
代码语言:javascript复制mysqld --initialize这一切都会重现的。如果您可以在这样做之前转储SQL,那么总是最好的。