1 votes

Connexion d'OS X 10.8 à MySQL

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…

1voto

Oskar Points 1242

La première étape consiste à vérifier que vos ports sont ouverts et qu'il n'y a pas de problème de réseau.

Dans le Finder, ouvrez /Applications/Utilitaires/Utilitaire réseau.app.

Choisissez ensuite "Port Scan". Entrez l'adresse IP (ou le nom si le DNS est configuré sur votre réseau) de la Linux Box et scannez tous les ports inférieurs à 4000.

Un succès ressemblerait à vos résultats :

Port Scanning host: 192.168.1.2

     Open TCP Port:     3306        mysql
Port Scan has completed…

Cela devrait permettre de vérifier rapidement que le réseau et/ou le DNS fonctionnent. Il est presque certain qu'il n'est pas bloqué - il faut faire beaucoup d'efforts pour bloquer des ports sortants arbitraires.

Si ce n'est pas le cas, vous devrez poser une question de suivi avec suffisamment de détails pour que quelqu'un puisse vous aider.

Si le réseau fonctionne, vous pouvez être sûr que ce n'est pas lié à OS X et peut-être vous concentrer sur une question de niveau de code sur Stack Overflow.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X