Python 使用基于SSHTunnelForwarder函数的方式来维护连接?

Python 使用基于SSHTunnelForwarder函数的方式来维护连接?,python,mysql,ssh,ssh-tunnel,Python,Mysql,Ssh,Ssh Tunnel,我正在将SSHTunnel逻辑添加到一个调用mysql数据库的现有python脚本中。我能够让连接正常工作,它确实执行了下面代码中的第一个MySql查询。剩下的代码左移回到第1列,这意味着当我进一步深入代码时,其他mysql调用不属于withSSHTunnelForwarder。毫不奇怪,他们失败了 1) 正确的逻辑只是将代码的其余部分右移,因此它是with语句的一部分。或者有没有其他方法可以打电话给这家隧道货运公司? 2) 这让我想到,这段代码是否会为每个mysql查询创建一个新的SSH隧道

我正在将SSHTunnel逻辑添加到一个调用mysql数据库的现有python脚本中。我能够让连接正常工作,它确实执行了下面代码中的第一个MySql查询。剩下的代码左移回到第1列,这意味着当我进一步深入代码时,其他mysql调用不属于with
SSHTunnelForwarder
。毫不奇怪,他们失败了

1) 正确的逻辑只是将代码的其余部分右移,因此它是
with
语句的一部分。或者有没有其他方法可以打电话给这家隧道货运公司? 2) 这让我想到,这段代码是否会为每个mysql查询创建一个新的SSH隧道

with SSHTunnelForwarder(
     ('mysite.com', 22),
     ssh_pkey='open_ssh',
     ssh_username="root",
     remote_bind_address=('127.0.0.1', 3306)) as server:

   db = MySQLdb.connect(user='root',passwd='xxxx',db='db',host='127.0.0.1',port=server.local_bind_port)
   cursor = db.cursor() # prepare a cursor object using cursor() method

   cursor.execute("SELECT * FROM tbl_catagories where store='store' order by UpdateTime ASC")
   mysql_cats = cursor.fetchall() 

你可以把代码移到右边。您可能希望将其全部放在一个单独的方法中