致命错误:mysql.user 表已损坏。请运行 mysql_upgrade

A X*_*A X 3 mysql windows database

我调整了 Azure VM 的大小,现在在 VM 内的 Windows 中运行的 MySQL 数据库已经死了。我在启动时看到以下致命错误。我试图按照它的建议运行 mysql_upgrade ,但只是出错,说它无法连接。有没有人对如何解决这个问题有任何想法?

2016-07-12T09:59:48.426367Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
2016-07-12T09:59:48.426367Z 0 [Note] IPv6 is available.
2016-07-12T09:59:48.426367Z 0 [Note]   - '::' resolves to '::';
2016-07-12T09:59:48.426367Z 0 [Note] Server socket created on IP: '::'.
2016-07-12T09:59:48.426367Z 0 [Note] Shared memory setting up listener
2016-07-12T09:59:48.438315Z 0 [Note] InnoDB: Loading buffer pool(s) from C:\ProgramData\MySQL\MySQL Server 5.7\Data\ib_buffer_pool
2016-07-12T09:59:48.455584Z 0 [Note] InnoDB: Buffer pool(s) load completed at     160712  9:59:48
2016-07-12T09:59:48.455584Z 0 [ERROR] Fatal error: mysql.user table is     damaged. Please run mysql_upgrade.
2016-07-12T09:59:48.455584Z 0 [ERROR] Aborting
Run Code Online (Sandbox Code Playgroud)

Kru*_*C S 9

终于解决了!这对我有用:/etc/init.d/mysqld start --skip-grant-tables && mysql_upgrade

升级成功后,您可以这样做:/etc/init.d/mysqld restart 或者,您可以单独停止和启动mysqld。

从昨天开始,我在 Centos 6 上被锁定在 mysql 错误中。

如果您在系统上安装了不同版本的 mysql 而系统上已经安装了另一个版本的 mysql,这确实可以节省您的时间。在这种情况下很可能会出现不同类型的错误。

--skip-grant-tables 可以派上用场,让您摆脱这种情况。如果您有一些安全问题,请检查此:有关如何安全使用此选项的链接

有关 --skip-grant-tables 的更多详细信息: 这使任何人都可以在没有密码的情况下使用所有权限进行连接,并禁用帐户管理语句,例如 ALTER USER 和 SET PASSWORD。来源:单击此处从官方 mysql 站点了解有关跳过授予的更多信息

克鲁蒂卡