クラッシュ後、以前のインストールの上に開発マシンに Ubuntu を再インストールし、必要なすべてのパッケージ (mysql-server および mysql-client を含む) を再インストールした後、開発データベースの復元を続行しました。残念ながら、接続できません。
これは機能します:
$ sudo su
# mysql -u root
これは
$ mysql -u root -p
- すべてを消去して再インストールしてみました
mysql-*
。 - 再構成を試みた(つまり
sudo dpkg-reconfigure mysql-server-5.7
) - クエリを使用して手動でパスワードをリセットしようとしました
UPDATE
。 - 私はあらゆることを試しましたここ(ただし、テーブルには列
user
はなくpassword
、authentication_string
1 つあります)
誰か、これを動作させるのを手伝ってくれませんか?
** 編集 **
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 の権限は復元されていない可能性があります。権限なしでサーバーにログインできるということは、ルート パスワードを設定し、それぞれの権限で使用する必要のあるその他のユーザーを追加する必要があることを意味します。