Forum Clubic

Différence connection localhost / socket ?

Bonjour à toutes et à tous :slight_smile:

J’aimerais savoir s’il y’a un intérêt autre que sécuritaire à se connecter à un serveur mySQL via un socket plutôt qu’en localhost ?

La connection par socket permet en effet de fermer tous les ports mySQL sur le firewall et de désactiver le support du réseau dans mySQL, ce qui peut-être une bonne chose (tout dépend du projet et de l’architecture :smiley: ) …

Mais qu’en est-il des performances ? Sont-elles meilleures (ont passe directement par le système de fichier, et non plus par la couche réseau, même en local) ? Sont-elles moins bonnes ? Y’a-t-il malgré tout des risques de sécurité (vol du socket …) ?

Si des gens ont une expérience à partager là dessus, merci d’en faire part dans ce topic :jap:

Ben localhost passe aussi par un socket non ?

La couche réseau en local est tres bien gerer sous linux donc je pense pas que ca change grand choses.

Je pense qu’il voulait dire par des tubes nommés non?

euh oui [:athena]

m’enfin je veux dire dans les paramètres de connection, indiqué “/var/lib/mysql/mysql.sock” en adresse de serveur au lieu de “localhost:3600”, et donc ajouter l’option “–skip-networking” dans les options mySQL :oui:
Edité le 16/01/2008 à 16:27

Je peux pas te dire foncièrement c’est quoi le mieux, n’ayant vu que des connexions et pas des tubes (“socket”), mais la différence doit se jouer au niveau des processus. Je sais pas ce qui est moins couteux entre attaquer une socket et attaquer via localhost. Mais dans la pratique c’est pareil (en système, open() ouvre un fichier, connect() (je crois) se connecte, et toutes deux renvoies un handle que tu manipule de la même façon avec read/write, donc bon… :))

ok … donc à part un aspect sécuritaire qui permet d’isoler complètement mySQL du réseau, ça n’as pas grand intérêt :oui: …

Ce n’est pas ce que j’ai dis.

J’ai juste dis que d’un point de vue système, c’est kif kif.

Maintenant, tu as certainement des différences liées au support, et c’est ça qu’il faut chercher. Pour moi, à priori localhost = utilise la carte réseau = implique une carte réseau même virtuelle, alors qu’une socket ça ne l’implique pas forcément puisque ça peut très bien se faire interprocessus.

euh … l’intérêt des pipes c’est de ne pas avoir à passer par tous les stacks TCP et donc éviter à la machine de faire de l’encapsulation et la désencapsulation de chaque paquet …

honnetement, si ta base mysql travaille pas mal, tu peux espérer un gain relativement conséquent de perfs.

voilà.

Sucer c’est mieux :slight_smile:

(<— [])