MySQLにログインできません。アクセスが拒否されました

MySQLにログインできません。アクセスが拒否されました

クラッシュ後、以前のインストールの上に開発マシンに Ubuntu を再インストールし、必要なすべてのパッケージ (mysql-server および mysql-client を含む) を再インストールした後、開発データベースの復元を続行しました。残念ながら、接続できません。

これは機能します:

$ sudo su
# mysql -u root

これは

$ mysql -u root -p
  • すべてを消去して再インストールしてみましたmysql-*
  • 再構成を試みた(つまりsudo dpkg-reconfigure mysql-server-5.7
  • クエリを使用して手動でパスワードをリセットしようとしましたUPDATE
  • 私はあらゆることを試しましたここ(ただし、テーブルには列userはなくpasswordauthentication_string1 つあります)

誰か、これを動作させるのを手伝ってくれませんか?


** 編集 **

mysql> SELECT user, host, authentication_string, password_expired, account_locked FROM user WHERE user = 'root';
+------------------+-----------+-------------------------------------------+------------------+----------------+
| user             | host      | authentication_string | password_expired | account_locked |
+------------------+-----------+-----------------------+------------------+----------------+
| root             | localhost | *<password hash>      | N                | N              |
| root             | %         | *<password hash>      | N                | N              |
+------------------+-----------+-----------------------+------------------+----------------+
5 rows in set (0.00 sec)

両方のrootユーザーは を使用して設定された同じパスワードを持ちPASSWORD('password')、すべての権限がフラッシュされた後、サービスが再起動されました。

ドキュメントに書かれていることとは反対に、実行sudo dpkg-reconfigure mysql-server-5.7することでないroot の新しいパスワードを指定するように求められます。コマンドは正常に終了しますが、パスワードの指定は求められません。

答え1

私は答えを見つけました、ここ

基本的に、pluginユーザーにとっての価値はroot@'localhost'ありませんでしたmysql_native_password

UPDATE user SET plugin = 'mysql_native_password' WHERE user = 'root';
FLUSH PRIVILEGES;

うまくいき、最終的にスーパーユーザー権限なしでログインできるようになりました。

答え2

MySQL の権限は復元されていない可能性があります。権限なしでサーバーにログインできるということは、ルート パスワードを設定し、それぞれの権限で使用する必要のあるその他のユーザーを追加する必要があることを意味します。

関連情報