In PHP ist die Funktion Connect () (oder eine ähnliche Verbindungsfunktion, wie z . Verbindungsversagen ist ein häufiges Problem in der Entwicklung, insbesondere bei Anfängern, Probleme mit der Fehlerbehebung können schwierig sein. In diesem Artikel wird die zehn häufigsten Ursachen für den Verbindungsversagen ausführlich analysiert und entsprechende Lösungen bereitgestellt, mit denen Sie Probleme schneller finden können.
Grund: Der Hostname (Host) in der Funktion Connect () wird falsch ausgefüllt, was häufig als falsche IP -Adresse oder Domänenname geschrieben wird.
Lösung:
Bestätigen Sie, ob die Datenbankserveradresse korrekt ist. Zum Beispiel sollte die richtige Art und Weise ähnlich sein:
$conn = mysqli_connect('m66.net', 'username', 'password', 'database');
Wenn sich die Datenbank auf der lokalen Maschine befindet, wird empfohlen , "127.0.0.1" oder "Localhost" zu verwenden.
Ursache: Das Datenbankkonto oder Kennwort wird falsch ausgefüllt, was zum Ausfall der Identitätsprüfung führt.
Lösung:
$conn = mysqli_connect('m66.net', 'Richtiger Benutzername', 'Richtiges Passwort', 'Datenbankname');
if (!$conn) {
die('Verbindung ist fehlgeschlagen,Fehlermeldung:' . mysqli_connect_error());
}
Stellen Sie sicher, dass der Benutzername und das Passwort korrekt sind und Zugriffsrechte haben.
Ursache: MySQL oder ein anderer Datenbankdienst wird nicht ausgeführt, wodurch die Verbindung nicht hergestellt werden kann.
Lösung:
Bestätigen Sie, dass der Datenbankdienst gestartet wurde. Kann über die Befehlszeile ausgeführt werden:
sudo service mysql status
Oder verwenden Sie das Service -Management -Tool des Systems, um den Dienst zu starten.
Ursache: Die Firewall blockiert den Zugriff auf den Datenbankport (Standard 3306).
Lösung:
Überprüfen Sie die Server -Firewall -Einstellungen, um sicherzustellen, dass der Port 3306 (oder benutzerdefinierte Port) geöffnet ist. Häufig verwendete Befehle unter Linux:
sudo ufw allow 3306
Cloud -Server müssen möglicherweise auch die Sicherheitsgruppenregeln ändern.
Ursache: Die falsche Portnummer wurde während der Verbindung angegeben.
Lösung:
Der Standardport ist 3306. Wenn die Datenbank einen benutzerdefinierten Port verwendet, müssen Sie diese klar angeben:
$conn = mysqli_connect('m66.net', 'username', 'password', 'database', 3307);
Ursache: Der Benutzer ist nicht berechtigt, vom aktuellen Host auf die Datenbank zugreifen zu können.
Lösung:
Melden Sie sich bei der Datenbank an und führen Sie den Befehl zur Autorisierung aus:
GRANT ALL PRIVILEGES ON database.* TO 'username'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Hier bedeutet "%" , dass jeder Host zugreifen darf und auch eine bestimmte IP angegeben werden kann.
Ursache: Die MySQLI- oder PDO -Erweiterung ist in der PHP -Umgebung nicht installiert, oder die Version ist nicht kompatibel.
Lösung:
Überprüfen Sie, ob die PHP -Umgebung die entsprechenden Erweiterungen korrekt installiert hat:
php -m | grep mysqli
Wenn nicht installiert, müssen Sie den Paketmanager verwenden, um ihn zu installieren, z. B.:
sudo apt-get install php-mysqli
Ursache: Netzwerkverzögerung oder Instabilität, Verbindungsanforderung zeitlich festgelegt.
Lösung:
Versuchen Sie, den Datenbankserver zu pingen, und bestätigen Sie, dass das Netzwerk reibungslos ist:
ping m66.net
Optimieren Sie die Netzwerkumgebung oder fügen Sie die Verbindungszeitüberschreitungseinstellungen gegebenenfalls hinzu.
Ursache: Der Domänenname kann nicht korrekt gelöst werden, was zum Verbindungsfehler führt.
Lösung:
Versuchen Sie stattdessen eine Verbindung mit einer IP -Adresse oder überprüfen Sie die native DNS -Konfiguration:
$conn = mysqli_connect('192.168.1.100', 'username', 'password', 'database');
Ursache: Die Datenbankversion des Servers beschränkt bestimmte Verbindungsmethoden oder Konfigurationsdateien wie my.cnf remoteverbindungen.
Lösung:
Überprüfen Sie die Datenbankkonfigurationsdatei und bestätigen Sie die Bindungsadresse:
bind-address = 0.0.0.0
Zeigt an, dass alle IP -Verbindungen nach dem Neustart des Datenbankdienstes zulässig und effektiv sind.