2010-02-17 16 views

Odpowiedz

5

localhost musi być zdefiniowany w pliku hosts, który jest domyślnie w systemie Windows i większości systemów operacyjnych.

Sprawdź następujący plik tekstowy i zobaczyć, co się dzieje:

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

Uwaga „hosts” jest plik, bez rozszerzenia, to nie jest folderem. Ten plik powinien być prawie pusty, jeśli widzisz wpisy, twój blok AV/spam dodał mnóstwo wpisów, które wskazują 127.0.0.1 lub paskudne złośliwe oprogramowanie, które tam zapisało śmieci, pomimo, że nowsze wpisy są poniżej starszych. Localhost powinien być pierwszym wpisem w tym pliku.

+5

Ten plik hosts może mieć :: 1 dla localhost. Zwykle wyłączam wszystko, co nie jest związane z IP4, aby wszystko działało. –

1

Spróbuj:

IE -> Narzędzia -> Opcje -> Połączenia -> Ustawienia sieci LAN Sprawdź proxy dla adresów lokalnych

2

Mają również zajrzeć do wnętrza bazy mysql, który definiuje użytkownikowi uprawnienia dostępu. Możesz tam określić, z których hostów źródłowych dany użytkownik może się łączyć. Można skonsultować http://dev.mysql.com/doc/refman/5.1/en/connection-access.html więcej szczegółów

+1

IIRC, już wcześniej spotkałem się z tym problemem. Dałem użytkownikowi dostęp przez "127.0.0.1", ale nie przez "localhost". –

8

Zajrzyj ping localhost w linii poleceń, może to być rozwiązanie do ::1: równowartość IP6 do 127.0.0.1

Aby go naprawić, dodać (lub komentarza) linię:

127.0.0.1  localhost 

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

+0

To zrobiło to dla mnie –

2

pamiętam, że będąc długoletnie i udokumentowane funkcja MySQL w systemie Windows. Coś o działaniu lokalnych gniazdek lub czymś podobnym.

0

Czy localhost rozpoznaje adres IPv6, w przeciwieństwie do IPv4, a MySQL nie nasłuchuje na v4?

Rozwiązaniem jest sprawić, że localhost zostanie rozwiązany na adres v4, lub sprawić, aby MySQL nasłuchiwał na adresie v6.

1

Jeśli MySQL łączy się z 127.0.0.1, robi to przez TCP/IP, natomiast jeśli łączy się z localhost, robi to przez gniazdo.
Czy PHP jest we właściwym miejscu dla mysql.sock? Upewnij się, że plik php.ini i my.conf mają pasujące lokalizacje

3

dla komputerów Mac, oto rozwiązanie:

połączyć się z MySQL przy użyciu localhost zamiast 127.0.0.1 na Macu. Od dłuższego czasu łączę się z MySQL na mojej platformie programistycznej z 127.0.0.1, ponieważ z jakiegoś powodu localhost nie działa. Okazuje się, ponieważ 127.0.0.1 używa TCP/IP, a localhost używa gniazd. Plik php.ini wskazuje niewłaściwe miejsce dla mysql.sock, więc wszystko, co musisz zrobić, to zmienić, ponownie uruchomić apache i 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 

Uwaga: W zależności od konfiguracji, możesz również zaktualizować te linie w swoim php.ini:

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

Uwaga: Jeśli nie masz pliku php.ini, trzeba skopiować dostarczonego domyślnej nazwie php.ini.default

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

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

0

If ty nie w windowsach również przetestuj, czy mysql łączy się przez gniazdo, lokalnie normalnie.

Siła tcp z klientem mysql

mysql -usomeone -p --protocol=TCP 

vs. gniazdo (domyślnie w systemie Linux)

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

Ten ostatni nie działa dla mojego [email protected]

Powiązane problemy