ホームページ > データベース > mysql チュートリアル > 正しい認証情報を使用しているにもかかわらず、MySQL が「アクセス拒否」を返すのはなぜですか?

正しい認証情報を使用しているにもかかわらず、MySQL が「アクセス拒否」を返すのはなぜですか?

Linda Hamilton
リリース: 2024-12-14 05:56:11
オリジナル
967 人が閲覧しました

Why Does MySQL Return

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';
ログイン後にコピー

追加の考慮事項

  1. ソケットを介した接続: ソケットを介して認証する場合、次のことが可能です。ユーザー 'bill'@'%' を使用してください。
  2. 接続タイプの影響: TCP 接続またはソケット接続は認証プロセスに影響しませんが、ソケットを介して接続できるのは匿名ユーザーのみです。
  3. 匿名ユーザー パスワード: 接続文字列に匿名ユーザーのパスワードを指定すると、別のユーザー名を指定している場合でもアクセスが許可されます。並べ替えルール。

以上が正しい認証情報を使用しているにもかかわらず、MySQL が「アクセス拒否」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート