Heim >Datenbank >MySQL-Tutorial >Warum wird mir die Berechtigung verweigert, wenn ich von Localhost aus eine Verbindung zu MySQL herstelle?

Warum wird mir die Berechtigung verweigert, wenn ich von Localhost aus eine Verbindung zu MySQL herstelle?

DDD
DDDOriginal
2024-11-02 16:54:29890Durchsuche

Why Am I Getting

Verbindung zu MySQL konnte nicht hergestellt werden: Berechtigung verweigert

Beim Versuch, mit PHP eine Verbindung zu einer MySQL-Datenbank herzustellen, kann ein Fehler mit der Meldung „Berechtigung“ auftreten bestritten." Dieser Fehler kann entweder in der Befehlszeile oder beim Zugriff auf ein Skript über einen Webserver wie localhost auftreten.

Insbesondere, wenn versucht wird, von localhost aus mit dem folgenden Skript eine Verbindung zu einer Datenbank herzustellen:

<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>

Der Fehler „Fehler: Verbindung zu MySQL konnte nicht hergestellt werden. Debugging-Fehlernummer: 2002 Debugging-Fehler: Berechtigung verweigert“ kann auftreten. Dieser Fehler weist darauf hin, dass der Benutzer nicht über die erforderlichen Berechtigungen verfügt, um eine Verbindung zur Datenbank herzustellen.

Der Grund für diese Diskrepanz zwischen der Befehlszeile und der Ausführung auf dem lokalen Host könnte mit den Sicherheitsrichtlinien von SELinux zusammenhängen. Standardmäßig ist die Richtlinie httpd_can_network_connect_db deaktiviert, wodurch verhindert wird, dass der Webserver eine Verbindung zu Remote-Datenbanken herstellt.

Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

  1. Überprüfen Sie den SELinux-Status, indem Sie getsebool ausführen -a | grep httpd.
  2. Wenn httpd_can_network_connect_db „Aus“ ist, aktivieren Sie es, indem Sie „setsebool -P httpd_can_network_connect_db 1“ ausführen.

Nachdem Sie diese Änderungen vorgenommen haben, sollte der Webserver in der Lage sein, eine Verbindung zu herzustellen die Datenbank, ohne dass der Fehler „Berechtigung verweigert“ auftritt.

Das obige ist der detaillierte Inhalt vonWarum wird mir die Berechtigung verweigert, wenn ich von Localhost aus eine Verbindung zu MySQL herstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn