web-dev-qa-db-ja.com

致命的なエラー:mysql.userテーブルが破損しています。 mysql_upgradeを実行してください

Azureのサイズを変更したVMで、VM内のWindowsで実行されているMySQL DBが停止しました。起動時に以下の致命的なエラーが表示されます。それが示唆するように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
3
A br

やっと解決しました!これは私のために働いた:/etc/init.d/mysqld start --skip-grant-tables && mysql_upgrade

アップグレードが成功したら、次のようにします。/etc/init.d/mysqld restartまたは、mysqldを個別に停止および開始できます。

Centos 6で昨日からmysqlエラーに閉じ込められていました。

これにより、システムに別のバージョンのmysqlがインストールされていて、システムに別のバージョンのmysqlがインストールされている場合でも、1日が節約されます。この状況では、さまざまな種類のエラーが発生する可能性が非常に高くなります。

--skip-grant-tablesは、この状況からあなたを解放するのに役立ちます。セキュリティ上の懸念がある場合は、このオプションをセキュリティで使用する方法について link を確認してください。

--skip-grant-tablesの詳細:これにより、誰もがパスワードなしですべての特権で接続できるようになり、次のようなアカウント管理ステートメントが無効になりますALTER USERおよびSET PASSWORD。ソース: ここをクリックして、公式のmysqlサイトからのスキップの許可の詳細を確認してください

クルティカ

7
Kruthika C S