首頁  >  問答  >  主體

資料庫連線錯誤:錯誤類型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 = 'welcome'; $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; exit; }else { echo "成功" . PHP_EOL; }</pre> <p>當我在終端上嘗試時</p> <blockquote> <p>php cxn-test.php //成功</p> </blockquote> <p>但當我在本地主機上嘗試時,我遇到了以下錯誤:</p> <blockquote> <p>curl -s http://localhost/cxn-test.php</p> </blockquote> <p><code>錯誤:無法連線到MySQL。 偵錯錯誤號碼:2002 偵錯錯誤訊息:權限被拒絕</code></p> <p>這是一個奇怪的問題,在本地主機上不起作用,但在命令列上工作正常。 </p>
P粉757640504P粉757640504394 天前462

全部回覆(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為Off,請透過下列指令啟用:

    setsebool -P httpd_can_network_connect_db 1

    (-P標誌使變更永久生效,因此設定在重新啟動後仍然有效。)

    回覆
    0
  • 取消回覆