ホームページ >データベース >mysql チュートリアル >ローカルホスト上のデータベースに接続すると「アクセスが拒否されました」エラーが発生するのはなぜですか?

ローカルホスト上のデータベースに接続すると「アクセスが拒否されました」エラーが発生するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-04 06:59:02455ブラウズ

Why am I getting a

データベース接続エラー: Localhost で「アクセス許可が拒否されました」

PHP 経由でデータベースに接続しようとすると、ターミナルで実行すると異なる結果が生じる可能性がありますローカルで実行した場合と比較します。提供されているシナリオでは、「Connect DATABASE Error TYPE: 2002: Permission Deny」というエラーは、Web サーバーにデータベースへのアクセスに必要な権限がないことを示しています。

この問題は、SELinux セキュリティ ポリシーに起因することがよくあります。デフォルトでは、ポリシー「httpd_can_network_connect_db」は無効になっており、Web サーバーがリモート データベースとの接続を確立することが禁止されています。

解決策:

  1. 次の実行による SELinux ステータス:

    getsebool -a | grep httpd
  2. 「httpd_can_network_connect_db」が「オフ」に設定されている場合は、次のコマンドで有効にします:

    setsebool -P httpd_can_network_connect_db 1
  3. 「-」 P" フラグにより​​、再起動後も設定が保持されます。

SELinux ポリシーが変更されると、Web サーバーはリモート データベースに接続できるようになり、「アクセスが拒否されました」エラーが解決されます。

以上がローカルホスト上のデータベースに接続すると「アクセスが拒否されました」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。