ホームページ  >  に質問  >  本文

データベース接続エラー: エラー タイプ 2002 - アクセス許可が拒否されました

<p>次のスクリプト (cxn-test.php) を使用してデータベースに接続しようとしています</p> <pre class="brush:php;toolbar:false;"><?php $host = '155.30.136.20';//仮想IP $user = 'abc_user'; $pass = 'xxxxxxxxx'; $dbname = 'ようこそ'; $link = mysqli_connect($host, $user, $pass,$dbname); if (!$link) { echo "エラー: MySQL に接続できません。" .PHP_EOL; echo "デバッグ エラー番号:" . mysqli_connect_errno() . PHP_EOL; echo "デバッグ エラー メッセージ:" . mysqli_connect_error() . PHP_EOL; 出口; }それ以外 { エコー「成功」 .PHP_EOL; }</pre> <p>ターミナルで試してみると</p> <ブロック引用> <p>php cxn-test.php //成功</p> </blockquote> <p>しかし、ローカルホストで試してみると、次のエラーが発生します: </p> <ブロック引用> <p>curl -s http://localhost/cxn-test.php</p> </blockquote> <p><code>エラー: MySQL に接続できません。 デバッグ エラー番号: 2002 デバッグ エラー メッセージ: アクセス許可が拒否されました</code></p> <p>これは奇妙な問題です。ローカルホストでは動作しませんが、コマンドラインでは正常に動作します。 </p>
P粉757640504P粉757640504394日前463

全員に返信(1)返信します

  • P粉041881924

    P粉0418819242023-08-25 17:08:22

    SELinux を実行する新しい CentOS 7 ボックスを入手した後、同じ問題に遭遇しました。コマンドライン経由でリモートの MySQL データベースサーバーに接続できますが、Drupal (およびテスト PHP スクリプト) は接続できません。

    この問題は、最終的には SELinux セキュリティ ポリシーによって引き起こされます。

    デフォルトでは、ポリシー httpd_can_network_connect_db は無効になっています (つまり、Web サーバー はリモート データベースに 接続できません)。

    次のコマンドで確認します。

    getsebool -a | grep httpd

    httpd_can_network_connect_db がオフになっている場合は、次のコマンドを使用して有効にしてください:

    リーリー

    (-P フラグは変更を永続的なものにするため、設定は再起動後も有効になります。)

    返事
    0
  • キャンセル返事