php - ejemplos - localhost vs. 127.0.0.1
php mysql insert (6)
- ¿El uso de
localhost
enmysql_connect()
hace que la conexión sea más rápida que usando127.0.0.1
? - ¿Cuál es el tipo de conexión entre el script PHP y mySQL (cuando se usa la función
mysql_connect()
)? ¿Es TCP / IP?
- Difiere entre Windows y Linux. Si usa un socket de dominio unix, será un poco más rápido que usar TCP / IP (debido a la menor sobrecarga que tiene).
- Windows usa TCP / IP como valor predeterminado, mientras que Linux intenta usar un socket de dominio Unix si elige localhost y TCP / IP si toma 127.0.0.1.
"localhost" significa conexión de socket local, mientras que 127.0.0.1 es TCP / IP. Y sí, los enchufes son más rápidos que TCP / IP.
Cite de http://pl.php.net/mysql_connect
Siempre que especifique "localhost" o "localhost: port" como servidor, la biblioteca del cliente MySQL anulará esto e intentará conectarse a un socket local (named pipe en Windows). Si desea usar TCP / IP, use "127.0.0.1" en lugar de "localhost". Si la biblioteca del cliente MySQL intenta conectarse al socket local incorrecto, debe establecer la ruta correcta como en su configuración de PHP y dejar el campo del servidor en blanco.
El sitio de Php dice:
Nota:
Siempre que especifique "localhost" o "localhost: port" como servidor, la biblioteca del cliente MySQL anulará esto e intentará conectarse a un socket local (named pipe en Windows). Si desea usar TCP / IP, use "127.0.0.1" en lugar de "localhost". Si la biblioteca del cliente MySQL intenta conectarse al socket local incorrecto, debe establecer la ruta correcta como en su configuración de PHP y dejar el campo del servidor en blanco.
Supongo que la diferencia de velocidad sería demasiado baja como para que no te preocupe.
No, se recomienda utilizar 127.0.0.1, porque Windows 7 tiene un problema al elegir entre IPv6 e IPv4. Intenté esto y si utilicé localhost, la página ha recargado aproximadamente 1seg (1,04seg) y cuando usé 127.0.0.1, la página ha recargado 50ms. Ambos fueron usados bajo Windows 7.
En Windows XP no hace la diferencia.
Para Mac, aquí está la solución:
Conéctese a MySQL usando localhost en lugar de 127.0.0.1 en un MAC. Hace mucho tiempo que me estoy conectando a MySQL en mi plataforma de desarrollo con 127.0.0.1 porque por alguna razón, localhost no funcionaba. Resulta que es porque 127.0.0.1 usa TCP / IP y localhost usa sockets. El archivo php.ini apunta al lugar incorrecto para mysql.sock, así que todo lo que tienes que hacer es cambiarlo, reiniciar apache y listo.
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: Si no tiene un archivo php.ini, debe copiar el predeterminado proporcionado llamado php.ini.default
sudo cp /private/etc/php.ini.default /private/etc/php.ini
a través de http://madproject.com/general/connect-to-mysql-using-localhost-instead-of-127-0-0-1-on-a-mac/
Para Unix, agregue al bloque del cliente después de [client]
en /etc/mysql/my.cnf esta línea:
protocol=tcp