SSHTunnelForwarder в Python требуется некоторый интервал для завершения - PullRequest
0 голосов
/ 19 мая 2019

Я использую SSHTunnelForwarder для доступа к моему удаленному серверу mysql db через python, но он не работает с перерывами, даже если он работал очень хорошо.

Я обновил paramiko, SSHTunnelForwarder с помощью pip дажехотя я не думаю, что это не проблема с версией, поскольку она работала очень хорошо.и у меня все еще проблема.

        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")

В конце концов, я добавил строку time.sleep (10) как раз перед установлением соединения с mysql, и проблема исчезла.

но мне нужно удалить фиксированное время ожидания завершения, например, 10 секунд, так как во многих случаях моему сценарию требуется удаленный доступ к БД.(Пожалуйста, я не считаю, что сохранение серверной переменной и conn в глобальной переменной) Как сценарий может автоматически ожидать завершения туннельного соединения?

...