karabanov
@karabanov
Системный администратор

Как подключиться к MSSQL через SSH туннель из Python скрипта?

Здравствуйте.

Вот так туннель поднимается, соединение с MSSQL, как бы пытается установиться но на этом всё и оканчивается соединение бесконечно висит в состоянии pending:
import pymssql
from sshtunnel import SSHTunnelForwarder
from time import sleep

def query():
  with SSHTunnelForwarder(
      ('111.222.333.444', 22),
       ssh_username='ssh-user',
       ssh_password='ssh-pass',
       remote_bind_address=('192.168.0.2', 1433),
       local_bind_address=('127.0.0.1', 1433),
  ) as tunnel:

      print(tunnel)

      connection = pymssql.connect(server='127.0.0.1', port='1433', user='user', password='pass', database='base')
      cursor = connection.cursor(as_dict=True)
      cursor.execute('SELECT id_country id, name title FROM dbo.Country WHERE id_country > 0')
      for row in cursor:
          print(row['title'])
      sleep(2)
      connection.close()
      sleep(10)
  print('FINISH!')

query()


Если поделить скрипт на два и в одном оставить часть кода которая поднимает туннель, а во втором оставить часть кода которая подключается к MSSQL базе и запустить их по очереди, то всё случиться, туннель поднимется, скрипт подключиться к MSSQL и выполнит запрос.

То-есть не получается поднять туннель и выполнить подключение к MSSQL базе из одного скрипта...

Что я делаю не так? Или может это некий баг?
  • Вопрос задан
  • 490 просмотров
Пригласить эксперта
Ответы на вопрос 1
planc
@planc
убери local_bind_address=('127.0.0.1', 1433),
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы