ホームページ >データベース >mysql チュートリアル >PHP をローカルで使用して MySQL データベースに接続すると「アクセス許可が拒否されました」エラーが発生するのはなぜですか?
ローカルホスト経由でデータベースに接続する際の権限拒否エラー
PHP を使用して MySQL データベースに接続しようとすると、ユーザーはしばしば恐ろしい問題に遭遇します。コマンド ラインでの実行は成功したにもかかわらず、ローカルでスクリプトを実行すると、「エラー: MySQL に接続できません。デバッグ エラー番号: 2002 デバッグ エラー: アクセス許可が拒否されました」という問題が発生します。
問題の詳細
この不可解な二分法を調査すると、SELinux セキュリティ ポリシーが根本的な原因であることがわかります。デフォルトでは、「httpd_can_network_connect_db」ポリシーは無効になっており、Web サーバーがリモート データベースとの接続を確立できません。
ポリシーの確認
この仮定を確認するには、次のようにします。次のコマンドを実行します。
getsebool -a | grep httpd
「httpd_can_network_connect_db」が「オフ」に設定されている場合は、以下の解決策に進みます。
問題の解決
この状況を修正するには、ポリシーを永続的に有効にする必要があります。これは、次のコマンドを使用して実現します。
setsebool -P httpd_can_network_connect_db 1
Web サーバーがリモート データベースと通信できるようにすることで、この変更によりアクセス許可拒否エラーが解決され、Web アプリケーション内からのシームレスなデータベース接続への道が開かれます。
以上がPHP をローカルで使用して MySQL データベースに接続すると「アクセス許可が拒否されました」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。