Lors de l'utilisation d'un client MySQL (par exemple mysql
), comment puis-je déterminer s'il s'est connecté au serveur en utilisant un fichier socket Unix ou en utilisant TCP / IP?
Lors de l'utilisation d'un client MySQL (par exemple mysql
), comment puis-je déterminer s'il s'est connecté au serveur en utilisant un fichier socket Unix ou en utilisant TCP / IP?
Réponses:
Essayez d'utiliser netstat -ln | grep 'mysql'
et vous pouvez voir comment il est connecté par la sortie. si vous avez accès au shell
Sous Unix, les programmes MySQL traitent spécialement le nom d'hôte localhost, d'une manière qui est probablement différente de ce que vous attendez par rapport aux autres programmes basés sur le réseau. Pour les connexions à localhost, les programmes MySQL tentent de se connecter au serveur local en utilisant un fichier socket Unix.
Cela se produit même si une option --port
ou -P
est donnée pour spécifier un numéro de port.
Si yould comme de connaître le type de connexion de l' intérieur mysql CLI, utilisez la commande « l \ » (statut).
mysql> \s
La sortie aurait une ligne semblable à l'une des suivantes (sous Unix).
Connection: 127.0.0.1 via TCP/IP
ou
Connection: Localhost via UNIX socket
Pour vous assurer que le client établit une connexion TCP / IP avec le serveur local, utilisez --host
ou -h
pour spécifier une valeur de nom d'hôte de 127.0.0.1, ou l'adresse IP ou le nom du serveur local. Vous pouvez également spécifier explicitement le protocole de connexion, même pour localhost, en utilisant l' --protocol=TCP
option. Par exemple:
shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP
L' --protocol={TCP|SOCKET|PIPE|MEMORY}
option spécifie explicitement un protocole à utiliser pour se connecter au serveur. Il est utile lorsque les autres paramètres de connexion entraînent normalement l'utilisation d'un protocole autre que celui que vous souhaitez. Par exemple, les connexions sur Unix à localhost sont établies en utilisant un fichier socket Unix par défaut:
shell> mysql --host=localhost
Pour forcer l'utilisation d'une connexion TCP / IP à la place, spécifiez une --protocol
option:
shell> mysql --host=localhost --protocol=TCP
Une connexion de fichier socket Unix est plus rapide que TCP / IP, mais ne peut être utilisée que lors de la connexion à un serveur sur le même ordinateur.