我将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()
1条答案
按热度按时间pgx2nnw81#
你可以把密码右移。你可以把它放在一个单独的方法。