Я использую 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 в глобальной переменной) Как сценарий может автоматически ожидать завершения туннельного соединения?