Heim  >  Fragen und Antworten  >  Hauptteil

Datenbankverbindungsfehler: Fehlertyp 2002 – Berechtigung verweigert

<p>Ich versuche, mit dem folgenden Skript (cxn-test.php) eine Verbindung zur Datenbank herzustellen</p> <pre class="brush:php;toolbar:false;"><?php $host = '155.30.136.20';//Virtuelle IP $user = 'abc_user'; $pass = 'xxxxxxxxx'; $dbname = 'Willkommen'; $link = mysqli_connect($host, $user, $pass,$dbname); if (!$link) { echo „Fehler: Verbindung zu MySQL konnte nicht hergestellt werden.“ echo „Debug-Fehlernummer:“ mysqli_connect_errno() . echo „Debug-Fehlermeldung:“ mysqli_connect_error() . Ausfahrt; }anders { echo „Erfolg“ .PHP_EOL; }</pre> <p>Wenn ich es auf dem Terminal versuche</p> <blockquote> <p>php cxn-test.php //Erfolg</p> </blockquote> <p>Aber wenn ich es auf localhost versuche, erhalte ich die folgende Fehlermeldung: </p> <blockquote> <p>curl -s http://localhost/cxn-test.php</p> </blockquote> <p><code>Fehler: Es konnte keine Verbindung zu MySQL hergestellt werden. Debug-Fehlernummer: 2002 Debug-Fehlermeldung: Berechtigung verweigert</code></p> <p>Das ist ein seltsames Problem, es funktioniert nicht auf localhost, funktioniert aber gut auf der Befehlszeile. </p>
P粉757640504P粉757640504394 Tage vor459

Antworte allen(1)Ich werde antworten

  • 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标志使更改永久生效,因此设置在重新启动后仍然有效。)

    Antwort
    0
  • StornierenAntwort