Domanda

Questo non funziona con la mia installazione di PHP 5.3.3 su WAMP / Windows 7:

mysql_connect('localhost', 'root', '');

Dopo Maximum execution time, viene presentato questo errore:

  

Attenzione: mysql_connect () [function.mysql-connect]: [2002] Un tentativo di connessione non riuscito perché l'entità connessa non ha (cercando di collegarsi via tcp: // localhost: 3306)

     

Attenzione: mysql_connect () [function.mysql-connect]:. Un tentativo di connessione non è riuscito perché l'entità connessa non ha risposto correttamente dopo un periodo di tempo o connessione stabilita perché host connesso non ha risposto

Questo funziona:

mysql_connect('127.0.0.1', 'root', '');

Mi chiedo se ha qualcosa a che fare con questo, dal PHP docs :

  

Ogni volta che si specifica "localhost" o "localhost: port", come server, la libreria client di MySQL avrà la precedenza su questo e provare a connettersi ad un socket locale (la named pipe su Windows). Se si desidera utilizzare il protocollo TCP / IP, l'uso "127.0.0.1" invece di "localhost". Se i tentativi di libreria client MySQL per connettersi al socket locale sbagliato, è necessario impostare il percorso corretto, come nella configurazione di PHP e lasciare vuoto il campo server.

Questo è dal mio php.ini:

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
; http://php.net/mysql.default-socket
mysql.default_socket =

Questo è un bug, o quello che sta succedendo?


Aggiorna : Sto usando MySQL 5.1.36 qualcosa, e posso collegarmi ad esso altrimenti. Dimenticato di dire, ma questo funziona con PHP 5.3.0 e 5.2.11. Naturalmente posso solo cambiare localhost a 127.0.0.1, ma voglio sapere perché non posso usare localhost.


Aggiorna 2 : Aggiunta (decommentando) 127.0.0.1 localhost al file hosts ha reso il lavoro. Ma perché è necessario?

È stato utile?

Soluzione 3

un bug con PHP. Il problema è con MySQL, e ha a che fare con esso non si collega correttamente a tutti i possibili indirizzi IP per un dominio .

Soluzione? Non utilizzare nomi host per la connessione al database, se non è assolutamente necessario. Questo potrebbe anche avere un effetto positivo impatto sulle prestazioni .

Altri suggerimenti

Prova ad aggiungere 127.0.0.1 localhost a C:\Windows\System32\drivers\etc\hosts?

sei solo avendo problemi di connessione tramite PHP o può non stabilire una connessione a MySQL da linea di comando come bene? Se non è possibile connettersi a tutti, verificare che il servizio è in esecuzione e in ascolto sulla porta 3306.

Si può anche provare a cambiare localhost: 127.0.0.1:3306

o

$ cfg [ 'Servers'] [$ i] [ 'host'] = 'localhost';

a

$ cfg [ 'Servers'] [$ i] [ 'host'] = '127.0.0.1';

Questo è in realtà un bug nel driver php_mysql. Vedere http://bugs.php.net/bug.php?id=48082

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top