localhost vs. 127.0.0.1 dans mysql connect()

  1. est-ce que l'utilisation de localhost dans mysql_connect() rend la connexion plus rapide que l'utilisation de 127.0.0.1 ?
  2. Quel est le type de connexion entre le script PHP et mySQL (en utilisant la fonction mysql_connect() )? Est-ce TCP/IP?
45
demandé sur Kostas Filios 2010-09-15 12:33:12

6 réponses

  1. diffère entre Windows et Linux. Si vous utilisez une socket de domaine unix, il sera légèrement plus rapide que L'utilisation de TCP/IP (en raison de la réduction des frais généraux que vous avez).
  2. Windows utilise TCP/IP par défaut, alors que Linux essaie D'utiliser une Socket de domaine Unix si vous choisissez localhost et TCP / IP si vous prenez 127.0.0.1.
61
répondu halfdan 2013-10-08 01:21:30

"localhost" signifie socket de connexion alors que 127.0.0.1 est TCP/IP. Et oui, les sockets sont plus rapides que TCP / IP.

Cite de http://pl.php.net/mysql_connect

chaque fois que vous spécifiez "localhost" ou "localhost:port" comme serveur, la bibliothèque client MySQL va outrepasser cela et essayer de se connecter à une socket locale (nommé pipe sur Windows). Si vous voulez utiliser TCP/IP, utilisez "127.0.0.1" au lieu de "localhost". Si la bibliothèque client MySQL essaie de se connecter à la mauvaise socket locale, vous devez définir le chemin correct comme dans votre configuration PHP et laisser le champ Serveur vide.

14
répondu Piotr Pankowski 2010-09-15 08:45:18

non, le 127.0.0.1 est recommandé , car Windows 7 a un problème avec le choix entre IPv6 et IPv4. J'ai essayé ceci et si j'ai utilisé localhost, la page a rechargé environ 1sec (1,04 sec) et quand j'ai utilisé 127.0.0.1, la page a rechargé 50ms. Les deux ont été utilisés sous Windows 7.

Dans Windows XP, cela ne fait pas de différence.

12
répondu Vasekdvor 2012-09-26 19:05:45

Php site dit:

Note:

Chaque fois que vous spécifiez "localhost" ou "localhost: port" comme serveur, le MySQL la bibliothèque client va passer outre ceci et essayez de vous connecter à une socket locale (nommé pipe sur les fenêtres). Si vous voulez pour utiliser TCP / IP, utilisez "127.0.0.1" à la place de "localhost". Si le client MySQL la bibliothèque tente de se connecter à la mauvaise socket local, vous devez définir la corriger le chemin comme dans votre PHP configuration et laissez le serveur champ vide.

je suppose que la différence de vitesse serait trop faible que c'est quelque chose dont vous ne devriez pas être inquiet.

0
répondu Sinan 2010-09-15 08:41:11

pour Unix, ajouter au bloc client après [client] dans /etc/mysql/my.cnf cette ligne:

protocol=tcp
0
répondu Igael 2012-12-19 18:43:38

pour macs, voici la solution:

Se connecter à MySQL en utilisant localhost au lieu de 127.0.0.1 sur un MAC. Depuis longtemps, je me connecte à MySQL sur ma plate-forme de développement avec 127.0.0.1 parce que pour une raison quelconque, localhost n'a pas fonctionné. Il s'avère que c'est parce que 127.0.0.1 utilise TCP/IP et localhost utilise des sockets. La php.le fichier ini indique le mauvais endroit pour le mysql.chaussette de sorte que tous vous avez à faire est de changer cela, redémarrez apache et le tour est joué!

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

Note: Si vous n'avez pas de php.fichier ini, vous devez copier le défaut fourni appelé php.ini.par défaut

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
répondu Gujamin 2013-10-24 00:07:20