Ich habe ein seltsames Problem in PHP MySQL:MySQL arbeitet mit 127.0.0.1, arbeitet aber nicht mit localhost?
php verbindet mit 127.0.0.1
aber nicht mit localhost
.
Wie löst man dieses Problem?
Ich habe ein seltsames Problem in PHP MySQL:MySQL arbeitet mit 127.0.0.1, arbeitet aber nicht mit localhost?
php verbindet mit 127.0.0.1
aber nicht mit localhost
.
Wie löst man dieses Problem?
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.
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. –
Versuchen:
IE -> Extras -> Optionen -> Verbindung -> LAN-Einstellungen überprüfen Bypass Proxy für lokale Adressen
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
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". –
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
Das hat es für mich getan –
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.
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.
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
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/
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]
@air für meine funktionierte: Ich bearbeitet Ihre Frage, fühlen Sie sich frei Rollback, falls Sie nicht zustimmen. –