Bei Verwendung der Funktion Connect () , um eine Verbindung zu einer Datenbank in PHP herzustellen, ist es ein häufiges Problem, auf den Fehler "Zugriff verweigert" zu stoßen. Dieser Fehler zeigt im Allgemeinen an, dass die Berechtigungen zur Verbindung zur Datenbank nicht zulässig sind, was zum Verbindungsfehler führt. In diesem Artikel werden die Ideen und spezifischen Methoden zur Fehlerbehebung solcher Probleme ausführlich vorgestellt und Ihnen helfen, Probleme schnell zu lokalisieren und zu lösen.
"Zugriff verweigert" ist normalerweise der Datenbankserver, der die Verbindungsanforderung ablehnt, was möglicherweise darauf zurückzuführen ist:
Falscher Benutzername oder Passwort
Der angeschlossene Host darf nicht auf die Datenbank zugreifen
Unzureichende Datenbankbenutzerberechtigungen
Datenbankserver -Konfigurationsbeschränkungen
Diese Art von Problem ist in relationalen Datenbanken wie MySQL üblich.
Im PHP -Code ähnelt der Code, der mit der Datenbank verbunden ist, der folgenden:
<?php
$servername = "m66.net";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
// Eine Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);
// Überprüfen Sie die Verbindung
if ($conn->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}
echo "Verbindung erfolgreich";
?>
Bestätigen Sie, dass $ Benutzername und $ Passwort korrekt sind. Ein falscher Benutzername oder ein falsches Passwort kann zu "Zugriff verweigert" führen.
MySQL -Benutzerberechtigungen basieren auf einer Kombination aus Benutzername und Host, wie beispielsweise User@localhost und user@192.168.1.1 sind unterschiedliche Konten.
Wenn Sie eine IP -Adresse oder einen Remote -Host verwenden, um eine Verbindung herzustellen, bestätigen Sie, dass der Datenbankbenutzer Zugriff auf den entsprechenden Host hat:
SELECT user, host FROM mysql.user WHERE user='your_username';
Wenn die Berechtigungen nicht ausreichend sind, können Sie den folgenden Befehl verwenden, um Berechtigungen hinzuzufügen:
GRANT ALL PRIVILEGES ON your_database.* TO 'your_username'@'your_client_ip' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
Standardmäßig erlauben MySQL -Server nur lokale Verbindungen. Sie müssen bestätigen, ob die Einstellung von Bind-Address in der MySQLD- Konfigurationsdatei einen Remote-Zugriff ermöglicht.
Normalerweise befindet sich die Konfigurationsdatei /etc/mysql/my.cnf in:
bind-address = 0.0.0.0
Zeigt an, dass alle IP -Verbindungen zulässig sind. Wenn es 127.0.0.1 ist, sind nur lokale Verbindungen zulässig.
Die Firewall kann verhindern, dass der Datenbankport (normalerweise 3306) sich für die Öffentlichkeit öffnet, was dazu führt, dass die Unfähigkeit zur Verbindung hergestellt wird. Sie können versuchen, Befehle zu verwenden, um die Portkonnektivität zu erkennen:
telnet m66.net 3306
Wenn die Verbindung fehlschlägt, überprüfen Sie die Firewall -Einstellungen.
Wenn die Verbindung fehlschlägt, kann MySQLI_Connect_error () eine bestimmte Fehlermeldung ergeben:
<?php
$conn = new mysqli("m66.net", "your_username", "your_password", "your_database");
if ($conn->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}
?>
Führen Sie in Kombination mit Fehleranforderungen eine gezielte Fehlerbehebung durch.
Wenn Sie mit der Funktion Connect () auf "Zugriff verweigert" in PHP begegnen, sollten Sie diese in den folgenden Aspekten überprüfen:
Bestätigen Sie, ob der Benutzername und das Passwort korrekt sind
Bestätigen Sie, ob der Datenbankbenutzer Zugriff auf den entsprechenden Host hat
Überprüfen Sie die Remote -Zugriffskonfiguration des Datenbankservers
Überprüfen Sie die Einstellungen für Netzwerk und Firewall
Verwenden Sie die Fehlermeldung, um die Positionierung zu unterstützen
Durch die obigen Schritte können Sie das Problem der Verbindungsablassung im Grunde genommen finden und lösen.