2017-06-07 9 views
0

さて、少し問題があります。mysqlパスワードが期限切れになり、mysql.userテーブルが壊れています

パスワードの有効期限が切れて、ユーザーテーブルが破損しています。私は

mysql -u root -p 

経由でログインすることができますが、私は、私はfolowingエラーを取得する実行するすべてのアクションに:

Column count of mysql.user is wrong. Expected 45, found 46. The table is probably corrupted.

私はあなたがfolowingコマンドでmysql.userテーブルを修正することができますことを読んだことがある:

mysql_upgrade -u root -p 

しかし、私はfolowingエラーが出ることを実行します。

mysql_upgrade: Got error: 1862: Your password has expired. To log in you must change it using a client that supports expired passwords. while connecting to the MySQL server Upgrade process encountered error and will not continue. So, How do I fix this?

0を

すべてのテーブルのバックアップがあるので、すべてのデータベースをリセットする必要はありません。

(なぜ奇妙な形式のStackOverflowが、それはすべてのコードだと思って、私は、コードブロックに入れたい、そう私はそれを保存することはできません?)

EDIT:

私は自分のパスワードを知っています。それはまったく問題ではありません。

私の問題は、パスワードが期限切れで、私のmysql.userが壊れているので何もできないということです! my.cnfを編集し、

[mysqld] 
default_password_lifetime=0 

を入れて、MySQLサーバを再起動し、再度ログインもう一度試してしよう:

答えて

1

は、パスワードの有効期限オプションを無効にしてください。 ソースはここhttps://dev.mysql.com/doc/refman/5.7/en/password-expiration-policy.html

すべてのデータベース ソースを修復するためにあなたがmysqlcheck --repair --databases db_namemysqlcheck --repair --all-databasesを実行してデータベースを修復するためであるここでは、まず、パスワードの有効期間を無効にしようとすることができ、データベースを修復しようとすることができhttps://dev.mysql.com/doc/refman/5.7/en/rebuilding-tables.html です。

+0

これは実際には機能しません。 'mysqlcheck --repair --all-databases'を実行するときにパスワードを入力する必要があります。パスワードを入力すると、期限切れと表示されます。私はまた、パスワードの有効期限を無効にしようとしたが、運がない。 –

+0

さて、mysqlサービスを再起動しましたか?この文をファイルに保存するMySQL 5.7.6以降: 'ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'MyNewPass';または' SET PASSWORD FOR 'root' @ 'localhost' = mysqld --init-file =/path/to/file& 'ソース:https://dev.mysql.com/doc/refman/5.7を実行してください。 /en/resetting-permissions.html –

+0

さて、はい、私はそれを試みました。私はこのエラーが続くだけです: 'mysql.userの列数が間違っています。期待された45、見つかった46.テーブルがおそらく破損している '私が試したすべてで –

関連する問題