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

PHP をローカルで使用して MySQL データベースに接続すると「アクセス許可が拒否されました」エラーが発生するのはなぜですか?

DDD
DDDオリジナル
2024-11-03 02:18:03501ブラウズ

Why Am I Getting a

ローカルホスト経由でデータベースに接続する際の権限拒否エラー

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 サイトの他の関連記事を参照してください。

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