2010-02-17 17 views

Antwort

5

localhost muss in Ihrer hosts-Datei definiert sein, die standardmäßig unter Windows und den meisten Betriebssystemen definiert ist.

Überprüfen Sie die folgende Textdatei und sehen, was los ist:

C:\WINDOWS\system32\drivers\etc\hosts 

Bitte beachten Sie „hosts“ ist die Datei, keine Erweiterung, es ist kein Ordner. Diese Datei sollte ziemlich leer sein, wenn Sie Einträge sehen, hat entweder Ihr AV/Spam-Blocker eine Menge Einträge hinzugefügt, die auf 127.0.0.1 zeigen, oder bösartige Malware hat dort Müll geschrieben, obwohl neuere Einträge unter älteren liegen. Localhost sollte der erste Eintrag in dieser Datei sein.

+5

Diese Hosts-Datei kann :: 1 für localhost haben. Normalerweise deaktiviere ich alles, was nicht mit IP4 zusammenhängt, um Dinge zum Laufen zu bringen. –

1

Versuchen:

IE -> Extras -> Optionen -> Verbindung -> LAN-Einstellungen überprüfen Bypass Proxy für lokale Adressen

2

auch einen Blick in die MySQL-Datenbank haben, die den Benutzer definiert Zugriffsrechte. Sie können dort festlegen, von welchen Quellhosts ein bestimmter Benutzer eine Verbindung herstellen darf. Sie können http://dev.mysql.com/doc/refman/5.1/en/connection-access.html für mehr Details

+1

IIRC, ich habe schon vorher auf dieses Problem gestoßen. Ich habe dem Benutzer speziell über "127.0.0.1" Zugriff gewährt, aber nicht über "localhost". –

8

Versuchen ping localhost in einer Befehlszeile konsultieren, kann es zu ::1: Äquivalent der IP6 Lösung werden 127.0.0.1

es zu beheben, fügen Sie (oder uncomment) die Zeile:

127.0.0.1  localhost 

in C:\WINDOWS\system32\drivers\etc\hosts

+0

Das hat es für mich getan –

2

ich erinnere mich, dass eine langjährige und dokumentierte Funktion von MySQL unter Windows zu sein. Etwas über die Art, wie lokale Sockets funktionieren oder so.

0

Wird localhost auf die IPv6-Adresse aufgelöst, im Gegensatz zu IPv4, und MySQL hört nicht auf der v4-Adresse?

Die Lösung ist make Localhost auf die v4-Adresse auflösen ODER MySQL auf die v6-Adresse abhören.

1

Wenn MySQL eine Verbindung zu 127.0.0.1 herstellt, geschieht dies über TCP/IP. Wenn es sich mit localhost verbindet, geschieht dies über einen Socket.
Ist PHP an der richtigen Stelle für mysql.sock? Stellen Sie sicher, php.ini und my.conf haben passende Standorte

3

Für macs, hier ist die Lösung:

Verbindung zu MySQL mit localhost anstelle von 127.0.0.1 auf einem MAC. Ich habe mich schon lange mit MySQL auf meiner Entwicklungsplattform mit 127.0.0.1 verbunden, weil localhost aus irgendeinem Grund nicht funktioniert hat. Es stellt sich heraus, dass 127.0.0.1 TCP/IP verwendet und localhost Sockets verwendet. Die Datei php.ini zeigt auf den falschen Platz für die mysql.sock, also musst du sie nur ändern, Apache neu starten und voila!

Open php.ini: /private/etc/php.ini 
Find the following line: mysql.default_socket = /var/mysql/mysql.sock 
Replace with: mysql.default_socket = /tmp/mysql.sock 
Restart apache: apachectl restart 

Hinweis: Je nach Konfiguration können Sie auch diese Zeilen in Ihrer PHP zu aktualisieren.ini:

mysqli.default_socket = /tmp/mysql.sock 
pdo_mysql.default_socket = /tmp/mysql.sock 

Hinweis: Wenn Sie keine Datei php.ini haben, müssen Sie die mitgelieferten Standard php.ini.default

sudo cp /private/etc/php.ini.default /private/etc/php.ini 

über http://madproject.com/general/connect-to-mysql-using-localhost-instead-of-127-0-0-1-on-a-mac/

0

genannt kopieren Wenn Sie können nicht unter Windows auch testen, ob MySQL über Socket verbindet, lokal tut es normalerweise.

Force-tcp mit dem MySQL-Client

mysql -usomeone -p --protocol=TCP 

vs. Buchse (Standard unter Linux)

mysql -usomeone -p 
mysql -usomeone -p --protocol=socket 

Letztere nicht [email protected]

Verwandte Themen