用基于sshtunnelforwarder函数的方式来维护连接?

llycmphe  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(301)

我将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()
pgx2nnw8

pgx2nnw81#

你可以把密码右移。你可以把它放在一个单独的方法。

相关问题