J'ai un réseau local à la maison et j'essaie de développer un programme. Ce programme est multiplateforme et doit se connecter à un serveur MySQL.
Le serveur est installé sur la boîte Linux et il accepte les connexions à distance car je peux me connecter avec succès à partir de machines Windows avec la bibliothèque Connector/C. Le serveur accepte la connexion sur le port standard 3306.
Cependant, lorsque j'essaie de me connecter à MySQL à partir d'un ordinateur portable Mac (sous OS X 10.8), la connexion n'est pas établie. J'ai d'abord pensé que cela était dû au fait que mon Mac n'affiche pas son nom d'hôte/nom d'ordinateur dans le routeur et que le réseau est donc confus. Mais même après avoir appliqué ce qui a été suggéré à ce lien je ne peux toujours pas me connecter.
Je me demande maintenant si OS X n'exécute pas une sorte de pare-feu dans lequel je dois débloquer un port sortant 3306 pour que la connexion passe. Ou bien il y a quelque chose d'autre qui empêche la connexion.
Le port est ouvert sur le routeur, il n'y a donc aucun problème.
Y a-t-il quelque chose que je puisse réparer du côté Mac ou au moins vérifier ?
Edit :
J'essaie de me connecter en utilisant Connector/C à partir de mon programme compilé avec Xcode. Le même code fonctionne parfaitement sous Windows (c'est-à-dire que la connexion est établie). Les 3 machines sont sur le même réseau domestique. L'appel à mysql_error() ne produit aucune erreur, mais le pointeur MYSQL est NULL après l'appel à mysql_real_connect().
Edit 2 :
Voici ce que montre ifconfig :
MyMac:dbhandler igorkorot$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether b8:e8:56:21:e0:c0
inet6 fe80::bae8:56ff:fe21:e0c0%en0 prefixlen 64 scopeid 0x4
inet6 2601:140:4003:860:bae8:56ff:fe21:e0c0 prefixlen 64 autoconf
inet6 2601:140:4003:860:65c6:8063:98a:4650 prefixlen 64 autoconf temporary
inet6 2601:140:4003:860::1088 prefixlen 64
inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
media: autoselect
status: active
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
ether 0a:e8:56:21:e0:c0
media: autoselect
status: inactive
L'ouverture de l'utilitaire réseau et la tentative de recherche de 3300 - 3310 à 192.168.1.3 ne donne rien. Il est juste dit ceci :
Port Scan has started…
Port Scanning host: 192.168.1.3
Port Scan has completed…
En essayant de scanner la machine où se trouve MySQL, j'obtiens ce qui suit :
Port Scan has started…
Port Scanning host: 192.168.1.2
Open TCP Port: 3306 mysql
Port Scan has completed…