如何修复错误1726 (HY000):存储引擎'MyISAM‘不支持系统表。在MySQL8.0中创建用户后

正如@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,那么总是最好的。