与SSHTunnelForwarder函数-基于方法来保持连接?

时间:2018-07-11 17:37:11

标签: python mysql ssh ssh-tunnel

我正在将SSHTunnel逻辑添加到对mysql数据库进行调用的现有python脚本中。我能够使连接正常工作,并且它确实执行了下面代码中的第一个MySql查询。我剩下的代码其余部分移回到第1列,这意味着当我进一步深入代码时,其他MySQL调用不属于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() 

1 个答案:

答案 0 :(得分:0)

您可以将该代码右移。您可能需要将它们全部放在单独的方法中。