Wenn PHP einfach nicht mit dem lokalen MySQL-Server verbinden will (Windows)

Tags:

Folgendes Script ...

<?php
new mysqli('localhost', 'root', '*********');

... resultierte im Fehler:

Warning: mysqli::mysqli(): (HY000/2002): Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat

Über die Kommandozeile konnte ich mich aber problemlos mit dem MySQL-Server verbinden.

Mr. Guughel riet mir dann anstatt localhost einfach 127.0.0.1 zu verwenden, was auch funktionierte.

Das war aber nur Symptombekämpfung und so suchte ich nach der Ursache des Problems. Schlussendlich fand ich raus, dass das Problem bei der Namensauflösung liegt.

In der hosts-Datei von Windows 7 steht nämlich:

# localhost name resolution is handled within DNS itself.
#127.0.0.1       localhost

Die Auflösung für localhost wird also nicht in der hosts-Datei gemacht. Das ist kein Problem, solange man keine eigenen Hosts für 127.0.0.1 definiert hat. Denn dann steht die Zuweisung 127.0.0.1 gleich localhost nicht mehr "an erster Stelle" - und das mag MySQL (oder PHP?) überhaupt nicht.

Als einfache Lösung kann man also einfach den Kommentare für 127.0.0.1 in der hosts-Datei entfernen und seine eigenen Hosts erst danach definieren.

Ähnliche Artikel

Kommentare