ホームページ  >  記事  >  データベース  >  Localhost から MySQL に接続すると「アクセス許可が拒否されました」というメッセージが表示されるのはなぜですか?

Localhost から MySQL に接続すると「アクセス許可が拒否されました」というメッセージが表示されるのはなぜですか?

DDD
DDDオリジナル
2024-11-02 16:54:29790ブラウズ

Why Am I Getting

MySQL に接続できません: 権限が拒否されました

PHP を使用して MySQL データベースに接続しようとすると、「権限」を示すエラーが発生する場合があります。拒否されました。"このエラーは、コマンド ライン、またはローカルホストなどの Web サーバー経由でスクリプトにアクセスするときに発生する可能性があります。

具体的には、次のスクリプトを使用してローカルホストからデータベースに接続しようとしたときに発生します:

<code class="php">$host = '155.30.136.20';
$user = 'abc_user';
$pass = 'xxxxxxxxx';
$dbname = 'welcome';
$link = mysqli_connect($host, $user, $pass,$dbname);

// Connection checks and error handling omitted for brevity</code>

「エラー: MySQL に接続できません。デバッグ エラー番号: 2002 デバッグ エラー: アクセス許可が拒否されました。」というエラーが表示される場合があります。このエラーは、ユーザーがデータベースへの接続を確立するために必要な権限を持っていないことを示しています。

コマンド ラインとローカルホストの実行との間にこの不一致の理由は、SELinux セキュリティ ポリシーに関連している可能性があります。デフォルトでは、ポリシー httpd_can_network_connect_db が無効になっており、Web サーバーがリモート データベースに接続できません。

この問題を解決するには、次の手順に従います。

  1. getsebool を実行して SELinux ステータスを確認します。 -a | grep httpd.
  2. httpd_can_network_connect_db が「オフ」の場合は、setsebool -P httpd_can_network_connect_db 1 を実行して有効にします。

これらの変更を加えた後、Web サーバーは次への接続を確立できるようになります。 「許可が拒否されました」エラーが発生することなくデータベースを実行できました。

以上がLocalhost から MySQL に接続すると「アクセス許可が拒否されました」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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