MySQL エラー 1045 (28000): ユーザー 'bill' のアクセスが拒否されました
ユーザー 'bill' を使用して MySQL に接続しようとしたとき正しいパスワードを使用すると、エラー メッセージ「ERROR 1045 (28000):ユーザー「bill'@'localhost' のアクセスが拒否されました (パスワードを使用: YES)」というメッセージが表示されます。このエラーは、ユーザー「bill」が作成され、すべての権限が付与され、ホスト「%」で指定されている場合でも発生します。
問題の根本
この問題は、ユーザー名が空白でホストが「localhost」または「127.0.0.1」に設定された匿名ユーザーが存在する可能性があるために発生します。 MySQL ユーザー テーブル。
MySQL がユーザー認証を解決する方法
クライアントが接続しようとすると、MySQL はユーザー テーブルをチェックし、クライアントのホスト名に一致する最初の行を選択します。そしてユーザー名。選択内容は、最も具体的なホスト値で最初に並べ替えられ、リテラルのホスト名と IP アドレスが優先されます。
この場合、ホストとして「localhost」を持つ匿名ユーザーは、ユーザー ' よりも接続試行によく一致します。 bill'@'%'、'bill' へのアクセスをブロックしています。
推奨される解決策
セキュリティ上の脆弱性が生じる可能性があるため、匿名ユーザーを削除することをお勧めします。これを行うには、次のコマンドを実行します。
DROP USER ''@'localhost';
追加の考慮事項
以上が正しい認証情報を使用しているにもかかわらず、MySQL が「アクセス拒否」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。