- L'utilizzo di
localhost
inmysql_connect()
rende la connessione più veloce rispetto all'utilizzo di127.0.0.1
? - Qual è il tipo di connessione tra lo script PHP e mySQL (quando si utilizza la funzione
mysql_connect()
)? È TCP/IP?
risposta
- Differenza tra Windows e Linux. Se si utilizza un socket di dominio unix, sarà leggermente più veloce rispetto all'utilizzo di TCP/IP (a causa del minor overhead che si ha).
- Windows utilizza TCP/IP come predefinito, mentre Linux tenta di utilizzare un socket di dominio Unix se si sceglie localhost e TCP/IP se si utilizza 127.0.0.1.
"localhost" indica la connessione socket locale mentre 127.0.0.1 è TCP/IP. E sì, i socket sono più veloci di TCP/IP.
Cite da http://pl.php.net/mysql_connect
Ogni volta che si specifica "localhost" o "localhost: port", come server, la libreria client di MySQL sarà sovrascrivere questo e provare a connettersi ad un socket locale (la named pipe su Windows). Se si desidera utilizzare TCP/IP, utilizzare "127.0.0.1" anziché "localhost". Se la libreria del client MySQL tenta di connettersi al socket locale sbagliato, è necessario impostare il percorso corretto come nella configurazione di PHP e lasciare il campo del server vuoto.
sito PHP dice:
Nota:
Ogni volta che si specifica "localhost" o "localhost: port", come server, la libreria client di MySQL sovrascriverà questo e cercare di connettersi a una presa locale (named pipe su Windows). Se si desidera utilizzare per utilizzare TCP/IP, utilizzare "127.0.0.1" invece di "localhost". Se la libreria del client MySQL tenta di connettersi al socket locale errato, è necessario impostare il percorso corretto come nella configurazione PHP e lasciare vuoto il campo server .
Immagino che la differenza di velocità sia troppo bassa per cui non dovresti preoccuparti.
No, si consiglia di utilizzare 127.0.0.1, perché Windows 7 ha un problema con la scelta tra IPv6 & IPv4. Ho provato questo e se ho usato localhost, la pagina ha ricaricare circa 1 sec (1,04 secondi) e quando ho usato 127.0.0.1, la pagina ha ricaricato 50 ms. Entrambi sono stati utilizzati con Windows 7.
In Windows XP non fa differenza.
Ho avuto la stessa esperienza. Passando da localhost a 127.0.0.1 la mia latenza è scesa da 1 secondo a 5 ms. Grazie! –
Per Unix, aggiungere al blocco client dopo [client]
in /etc/mysql/my.cnf questa linea:
protocol=tcp
per Mac, ecco la soluzione:
Connect to MySQL utilizzando localhost invece di 127.0.0.1 su un MAC.Per molto tempo ora mi sono collegato a MySQL sulla mia piattaforma di sviluppo con 127.0.0.1 perché per qualche motivo localhost non ha funzionato. È risultato che 127.0.0.1 utilizza TCP/IP e localhost utilizza socket. Il file php.ini punta al posto sbagliato per mysql.sock, quindi tutto ciò che devi fare è cambiarlo, riavviare apache e voilà!
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
Nota: se non si dispone di un file php.ini, è necessario copiare il predefinito fornito chiamato php.ini.default
sudo cp /private/etc/php.ini.default /private/etc/php.ini
via http://madproject.com/general/connect-to-mysql-using-localhost-instead-of-127-0-0-1-on-a-mac/
- 1. PHP MYSQL - Differenza tra 127.0.0.1 e localhost
- 2. connessione ssh localhost chiusa da 127.0.0.1?
- 3. C# Web - localhost: porta funziona, 127.0.0.1:port non funziona
- 4. Collegare MySQL tramite localhost non funziona, ma 127.0.0.1 sta lavorando
- 5. qual è la differenza tra "localhost" e "127.0.0.1"?
- 6. L'app per Twitter non accetta localhost e 127.0.0.1 come CallbackUrl
- 7. Express - req.ip restituisce 127.0.0.1
- 8. setup test localhost - Facebook non consente localhost
- 9. Può connettersi a postgres tramite localhost senza password ma non tramite 127.0.0.1. Perché?
- 10. Perché il server Puma rails accetta solo localhost: 3000 anziché 127.0.0.1:3000
- 11. WAMPSERVER non può accedere da URL localhost ma 127.0.0.1 è ok (su Win8)
- 12. Impossibile connettersi a MySQL con 127.0.0.1
- 13. connessione sendmail rifiutata da 127.0.0.1
- 14. OperationTimedOut: errors = {}, last_host = 127.0.0.1
- 15. InetAddress.getLocalHost() restituisce sempre 127.0.0.1
- 16. InetAddress.getLocalHost(). GetHostAddress() restituisce 127.0.0.1 in Android
- 17. tcpdump: localhost a localhost
- 18. Qual è la differenza tra l'avvio di un binding server su 0.0.0.0 vs 127.0.0.1?
- 19. Python - Get IP localhost
- 20. 127.0.0.1 Non funziona in IE 11
- 21. Wordpress localhost ftp
- 22. .htaccess consentire il problema localhost
- 23. Localhost WAMP Proibita
- 24. Come connettersi a localhost da VS Emulatore Android
- 25. DNS reindirizza tracker.thepiratebay.org a 127.0.0.1
- 26. Request.ServerVariables [ "SERVER_NAME"] è sempre localhost
- 27. Impossibile connettersi a mysql su 127.0.0.1:3306 con accesso root utente negato per utente 'root' @ 'localhost' (utilizzando la password: YES)
- 28. Come creare un database localhost usando mysql?
- 29. Django Localhost CORS non funziona
- 30. WCF service endpoint localhost confusione
Grazie! Perché Apache non interagisce tramite TCP/IP o connessione basata su socket con PHP? – Joel
Apache utilizza mod_php o si connette a PHP utilizzando TCP/IP o Unix Domain Socket (se configurato per l'esecuzione tramite fastcgi). – halfdan
+ la cosa sgradevole in Linux è quando si specifica 'localhost' come host, e una porta specifica, ignora semplicemente l'intero bit della porta e usa il socket predefinito, non qualcosa che si vuole quando si eseguono più server su una singola macchina (da qui il porto diverso ..). – Wrikken