データベース接続エラー: エラー タイプ 2002 - アクセス許可が拒否されました
P粉757640504
P粉757640504 2023-08-24 19:54:00
0
1
513
<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粉757640504
P粉757640504

全員に返信(1)
P粉041881924

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

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

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

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

getsebool -a | grep httpd

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

リーリー

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!