1. ホーム
  2. mysql

[解決済み] mysqlで作成したユーザーでログインできない

2023-06-19 03:59:40

質問

このコマンドを使うと

GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';

でログインしようとする。

 mysql -u brian -ppassword

エラーは

ERROR 1045 (28000): Access denied for user 'brian'@'localhost' (using password: YES)

私はrootでやっているので、権限をフラッシュすることは試しました。

数え切れないほどのユーザーでこれを試しましたが、うまくいかないようです。パスワードなしのユーザーを作成することはできますし、ログインも動作します。コマンドラインとphpmyadminから

また、ユーザーがmysql.userにあったかどうかを確認し、それはそうです。

brianのショーのためのグラントを表示します。

| GRANT ALL PRIVILEGES ON *.* TO 'brian'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |

どのように解決するのですか?

おそらく、MySQL の永久的な問題として、ユーザー テーブルのデフォルト ユーザーの 1 人が '' @ localhost で、これはすべての localhost のユーザを拒否することになります。 私ならこうします mysqldumpmysql データベースの中からこのエントリを探します。 User テーブルでこのエントリを探します。もし見つかったら、それを削除し、権限をフラッシュします。

詳細については https://dev.mysql.com/doc/refman/5.5/en/connection-access.html .

与えられたユーザ名に対して、サーバが接続の一致を見つけようとするとき、そのユーザを明示的に名指したすべての行が最初に使われると考えるのは、よくある誤解です。しかし、これは真実ではありません。この例では、h1.example.net からの jeffrey による接続は、User 列の値として 'jeffrey' を含む行ではなく、ユーザ名を持たない行によって最初にマッチングされることを示しています。 その結果、jeffreyは接続時にユーザー名を指定したにもかかわらず、匿名ユーザーとして認証されます。