2009-06-22 7 views
2

J'utilise la librairie Python mentionnée ci-dessus pour me connecter à un serveur MySQL. Jusqu'à présent, j'ai travaillé localement et tout a bien fonctionné, jusqu'à ce que je me rende compte que je vais devoir utiliser mon programme dans un réseau où tout l'accès passe par un proxy.MySQLdb par proxy

Est-ce que quelqu'un maintenant comment je peux définir les connexions gérées par cette lib pour utiliser un proxy? Alternativement: connaissez-vous une autre librairie Python pour MySQL capable de gérer cela?

Je n'ai également aucune idée si le serveur proxy permettra l'accès au port MySQL standard ou comment je peux le tromper pour l'autoriser. L'aide sur ceci est également bien accueillie.

Répondre

2

J'utilise ssh tunneling pour ce genre de questions. Par exemple je développe une application qui se connecte à un oracle db.

Dans mon code, j'écris pour vous connecter à localhost puis d'une coquille que je fais:

ssh -L1521:localhost:1521 [email protected] 

Si vous êtes dans Windows, vous pouvez utiliser PuTTY

0

Vous devez faire quelque chose de spécial pour vous connecter via un proxy?

Je suppose que vous venez de fournir les paramètres corrects à la fonction connect. De the documentation, il semble que vous pouvez spécifier le nom d'hôte et le numéro de port avec un argument à connect.

Comme ceci:

connection = connect(host="dbserver.somewhere.com", port=nnnn) 
# etc.. 
+0

Je ne suis pas sûr, c'est la première fois que j'écris du code qui est censé accéder à des choses via un proxy. Ma conjecture était que je devais fournir l'adresse proxy, un peu comme si vous définissiez le proxy pour un navigateur. –

+0

Je suggère que vous essayez de fournir l'adresse du proxy en tant qu'hôte. Demandez à l'administrateur du proxy quel numéro de port vous devez vous connecter pour transférer le trafic vers le serveur db. Ce peut être le numéro de port MYSQL par défaut. – codeape

+0

Je ne pense pas que cela ait beaucoup de sens. Si j'utilise l'adresse proxy en tant qu'hôte, je ne spécifie nulle part l'adresse du serveur auquel je veux me connecter. À moins que le proxy ne soit en quelque sorte configuré pour transférer un port spécifique vers un serveur externe, ce qui n'est évidemment pas le cas. –

1

il y a beaucoup de possibilités différentes ici. la seule façon d'obtenir une réponse définitive est de parler à la personne qui gère le proxy. S'il s'agit d'une application Web et que le serveur Web et la base de données sont tous deux situés de l'autre côté d'un proxy, vous n'avez pas besoin de vous connecter au serveur mysql car l'application Web le fera pour toi.

+0

Ils sont sur différents côtés du proxy –