我一直在使用SSHTunnelForwarder通过python访问我的远程mysql数据库服务器,但是即使它运行得很好,它也不能间歇性地工作。
我已经通过pip升级了paramiko,SSHTunnelForwarder,尽管我认为这不是版本问题,因为它运行良好。我仍然有问题。
with SSHTunnelForwarder(
(config.target_server_ip, 22),
ssh_username=config.target_server_ssh_user,
ssh_pkey=config.local_pk,
remote_bind_address=(localhost, 3306),
logger=create_logger(loglevel=1)
) as server:
**** time.sleep(10) **** ## this line resolves the problem why?
conn = mysql.connect(host=localhost,
port=server.local_bind_port,
user=config.target_userid,
db=config.target_db_name,
use_unicode=True,
charset="utf8")
最终,我在连接到mysql之前添加了time.sleep(10)行,问题已经解决了。
但是,由于许多情况下我的脚本需要进行远程数据库访问,因此我需要删除固定的完成等待时间,例如10秒。 (请注意,我不认为将服务器变量和conn保留在全局变量中)该脚本如何等待自动完成隧道连接?