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

我调整了一个Azure虚拟机的大小,现在在虚拟机内运行的Windows的MySQL数据库已经死了。 我在启动时看到下面的致命错误。 我试图运行mysql_upgrade,因为它build议,但只是错误说它不能连接。 有没有人有任何想法如何解决这个问题?

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 

终于解决了! 这对我有效: /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的更多详细信息:这使得任何人都可以在没有密码和所有权限的情况下连接,并禁用帐户pipe理语句,例如ALTER USER和SET PASSWORD。 来源: 点击这里了解更多关于从官方的MySQL网站跳过授予

Kruthika