我正在将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()
答案 0 :(得分:0)
您可以将该代码右移。您可能需要将它们全部放在单独的方法中。