Page 1 sur 1

SQL distant, réseau et routeur

Posté : 29 mai 2009, 16:14
par webaida
Bonjour,

ma question n'est pas strictement sur MySQL et sa syntaxe, mais plus sur un problème d'accès à une base "distante".

Pour un projet, j'ai besoin qu'un serveur Apache accède à une base SQL qui n'est pas la sienne (non localhost donc). Rien de très compliqué, j'arrive à le faire fonctionner en réseau local.

J'ai donc configuré un utilisateur SQL sur ma base qui puisse venir de n'importe ou (serveur : %).
J'ai essayé en réseau local, ça fonctionne.
La machine A (192.168.1.116) se connecte au serveur B (192.168.1.201) et peut exécuter des requêtes.
Je suis en VPN avec d'autres sites. La machine C (10.7.167.10) peut se connecter au serveur B de la même manière.

Maintenant j'aimerais qu'un poste externe (internet) accède à B. J'ai donc configuré mon routeur pour que le port 3306 soit redirigé vers B.

Pour tester, j'ai essayé de me connecter avec ma machine A (dans mon réseau) à mon IP publique AA.BB.CC.DD, via un script PHP et la console, ça fonctionne.

Par contre la machine C (du VPN, et donc un autre réseau) me retourne l'erreur :

Code : Tout sélectionner

ERROR 2003 (HY000): Can't connect to MySQL server on AA.BB.CC.DD' (60)
J'ai essayé depuis un serveur D (site internet en baie, en ligne et en production) via la console, il me retourne l'erreur

Code : Tout sélectionner

ERROR 2003 (HY000): Can't connect to MySQL server on 'AA.BB.CC.DD' (110)
Je ne comprends pas pourquoi ça ne fonctionne pas, surtout qu'apparement ça fonctionne dans le premier cas (mais bon, comme je sors de mon réseau pour y re-rentrer, c'est peut-être biaisé comme résultat).

Merci !

Posté : 02 juin 2009, 21:31
par Sékiltoyai
Salut,

J'avais pas réagi quand t'a posté mais c'est un problème intéressant. Mais le problème c'est que ça n'a complètement rien à voir avec SQL.
Déjà, j'ai pas trop compris exactement ton architecture. Est ce que tu pourrais faire un schéma récapitulatif (par exemple en ASCII). Ensuite, tu dis avoir fait des tests, est ce que tu peux recommencer tous tes tests en supprimant la problématique du serveur SQL et en la remplaçant par des ping. Donc tu retestes tout en faisant des ping plutôt qu'en testant des connexions SQL…

Voilà :)

Posté : 02 juin 2009, 23:03
par Nagol
les erreurs sont définies par les différents clients mysql c'est pas très intéressant vu qu'on est dans un contexte réseau, donc ca serait plus facile de débuger à coup de telnet pour savoir si ca communique ou pas d'un point de vue réseau avant d'aller plus haut dans le protocole :)

Posté : 04 juin 2009, 14:43
par webaida
Image

Bonjour,

merci pour votre intérêt, voilà le schéma.

A, B et C sont en VPN.

A se connecte a B en SQL avec 192.168.1.201
C se connecte à B avec 192.168.1.201
A se connecte à B avec l'IP publique (88.99.100.200)
C ne se connecte pas à B avec l'IP publique (88.99.100.200)
D ne se connecte pas à B avec l'IP publique (88.99.100.200)

Sur mon routeur j'ai bien spécifié que le port 3306 était redirigé vers .201

Pour le telnet, je ne connais pas les commandes pour ouvrir une connexion sql et tout ...

Je pense que c'est un problème de routeur, mais comme A se connecte à B avec l'IP publique, je ne comprends pas ...

Posté : 04 juin 2009, 18:17
par Sékiltoyai
merci pour votre intérêt, voilà le schéma.
Merci, c'est plus clair.
Sur mon routeur j'ai bien spécifié que le port 3306 était redirigé vers .201
Quel style de routeur ?
Comment le configures-tu ?
Es-tu sûr que la règle de redirection n'est pas limitée qu'au lan ?
Pour le telnet, je ne connais pas les commandes pour ouvrir une connexion sql et tout ...
Je ne parle pas d'ouvrir une connexion sql, simplement d'ouvrir une connexion classique. Si tu as telnet (sous Windows), ou netcat (sous Linux), tu peux simplement te connecter sur l'ip souhaitée et le port souhaité, il n'y a pas besoin d'ouvrir une connexion sql…