Fehler „Berechtigung verweigert“ beim Herstellen einer Verbindung zur Datenbank über Localhost
Beim Versuch, mit PHP eine Verbindung zu einer MySQL-Datenbank herzustellen, stoßen Benutzer oft auf das Gefürchtete „Fehler: Es konnte keine Verbindung zu MySQL hergestellt werden. Debugging-Fehlernummer: 2002 Debugging-Fehler: Berechtigung verweigert“ beim lokalen Ausführen des Skripts trotz erfolgreicher Ausführung in der Befehlszeile.
Eingehend auf das Problem eingehen
Bei der Untersuchung dieser rätselhaften Dichotomie stellt sich heraus, dass SELinux-Sicherheitsrichtlinien der zugrunde liegende Übeltäter sind. Standardmäßig ist die Richtlinie „httpd_can_network_connect_db“ deaktiviert, wodurch verhindert wird, dass der Webserver eine Verbindung mit einer Remote-Datenbank aufbaut.
Überprüfung der Richtlinie
Um diese Annahme zu bestätigen, Führen Sie den folgenden Befehl aus:
getsebool -a | grep httpd
Wenn „httpd_can_network_connect_db“ auf „Aus“ gesetzt ist, fahren Sie mit der folgenden Lösung fort.
Beheben des Problems
Um Abhilfe zu schaffen, muss die Richtlinie dauerhaft aktiviert werden. Dies wird mit dem folgenden Befehl erreicht:
setsebool -P httpd_can_network_connect_db 1
Dadurch, dass der Webserver mit der Remote-Datenbank kommunizieren kann, behebt diese Änderung den Fehler „Berechtigung verweigert“ und ebnet den Weg für eine nahtlose Datenbankkonnektivität innerhalb der Webanwendung.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Berechtigung verweigert', wenn ich lokal mit PHP eine Verbindung zu meiner MySQL-Datenbank herstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!