MySQLdb + SSH Tunnel

Riley Crane vodkalove at
Tue Jul 14 05:14:19 EDT 2009

Got it working.  Thanks for your help!

1) login to B
2) setup a tunnel in the shell   machine-B> ssh -L
B_ip_address:B_port:C_ip_address:C_port user at C_ip_address

   for example:
     machine-B has ip
     machine-C has ip

   then I would type:
   machine-B> ssh -L user at

   now the code that is running on machine-A would use MySQLdb in the
following way

   import MySQLdb
   connection = MySQLdb.connect

   NOTE: the port is an integer, NOT a string

On Jul 12, 9:18 pm, Riley Crane <vodkal... at> wrote:
> I am running a script on one machine that connects to a MySQL database
> on another machine that is outside of our university's domain.
> According to the administrator, network policies do not allow the
> compute nodes to access machines outside of our university's domain.
> A = compute node within university (I do not have shell access)
> B = 2nd machine within university that does not block outside
> connections (I have root access)
> C = machine outside of university (I have root access)
> mysqldb on A cannot connect to C ....but.....
> mysqldb on A can connect to B
> Is it possible to set something up where A talks to a port on B, and
> that port is actually nothing more than 3306 on C?  Can I do this with
> an SSH tunnel?
> Can anyone please give precise instructions?

More information about the Python-list mailing list