Python中的SSHTunnelForwarder需要一些时间间隔才能完成

时间:2019-05-19 13:42:29

标签: python mysql ssh-tunnel

我一直在使用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保留在全局变量中)该脚本如何等待自动完成隧道连接?

0 个答案:

没有答案