首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复错误1726 (HY000):存储引擎'MyISAM‘不支持系统表。在MySQL8.0中创建用户后

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

Stack Overflow用户
提问于 2019-01-21 14:52:39
回答 5查看 28.5K关注 0票数 10

我已经安装了Debian MySQL8.0的新安装(尚未对配置进行任何更改)。当我尝试创建一个新用户时:

代码语言:javascript
运行
复制
mysql> CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'xyz';

我得到了以下信息:

错误1726 (HY000):存储引擎'MyISAM‘不支持系统表。mysql.db

对这个问题有什么建议吗?

谢谢

EN

回答 5

Stack Overflow用户

发布于 2019-04-24 21:01:36

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

票数 13
EN

Stack Overflow用户

发布于 2021-03-02 17:31:25

不要运行alter来强制它将mysql.db更改为innodb。您将得到一个不同的错误,例如“无法从mysql.db加载。该表可能已损坏”。如果你这样做了,下面也会解决这个问题。

我从5.7恢复了一个转储到一个新的8.0服务器,然后出现了这个问题。

要修复它,请停止mysql服务,然后运行以下命令,使mysql 8升级内部模式:

代码语言:javascript
运行
复制
mysqld --upgrade=FORCE

您可以查看日志以查看其进度,以及是否有任何错误。

票数 5
EN

Stack Overflow用户

发布于 2019-01-21 15:23:57

您也许应该考虑离开MyISAM。InnoDB是MySQL中的默认引擎,从5.6开始,MySQL 8.0将是最后一个对它的支持有限的版本。

您可以阅读这篇Percona博客文章中的详细信息

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54292491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档