#python #sql-server #debian #remote-access #pymssql
Вопрос:
У меня есть компьютер с Windows, на котором установлен SQL-сервер. У меня также есть другой компьютер, на котором установлена виртуальная машина с Debian. В этой виртуальной машине есть скрипт Python, который должен подключиться к SQL-серверу. То есть мне нужно удаленно подключиться к SQL-серверу на другом компьютере.
На моем SQL-сервере я создал пользователя remote_user
с паролем и необходимыми правами.
Я также включил удаленные подключения
включил протокол TCP/IP в диспетчере конфигурации SQL Server
проверил порт на наличие TCP/IP
запустил браузер и агент SQL Server
и добавил порт 1433
в разрешенные правила брандмауэра Windows
Затем я пытаюсь подключиться к серверу в своем скрипте python, используя следующий код:
import pymssql conn = pymssql.connect('ip_address', 'remote_user', 'password', 'db_name')
но появляется ошибка:
Traceback (most recent call last): File "src/pymssql/_pymssql.pyx", line 646, in pymssql._pymssql.connect File "src/pymssql/_mssql.pyx", line 2126, in pymssql._mssql.connect File "src/pymssql/_mssql.pyx", line 716, in pymssql._mssql.MSSQLConnection.__init__ File "src/pymssql/_mssql.pyx", line 1835, in pymssql._mssql.maybe_raise_MSSQLDatabaseException File "src/pymssql/_mssql.pyx", line 1852, in pymssql._mssql.raise_MSSQLDatabaseException pymssql._mssql.MSSQLDatabaseException: (20009, b'DB-Lib error message 20009, severity 9:nUnable to connect: Adaptive Server is unavailable or does not exist (ip_address)nNet-Lib error during Connection timed out (110)nDB-Lib error message 20009, severity 9:nUnable to connect: Adaptive Server is unavailable or does not exist (ip_address)nNet-Lib error during Connection timed out (110)n') During handling of the above exception, another exception occurred: Traceback (most recent call last): File "lt;stdingt;", line 1, in lt;modulegt; File "src/pymssql/_pymssql.pyx", line 652, in pymssql._pymssql.connect pymssql._pymssql.OperationalError: (20009, b'DB-Lib error message 20009, severity 9:nUnable to connect: Adaptive Server is unavailable or does not exist (ip_address)nNet-Lib error during Connection timed out (110)nDB-Lib error message 20009, severity 9:nUnable to connect: Adaptive Server is unavailable or does not exist (ip_address)nNet-Lib error during Connection timed out (110)n')
Я что-то пропустил? Что может вызвать такую проблему?
Буду признателен за любую помощь!
Комментарии:
1. К вашему сведению, делиться своим публичным IP-адресом крайне глупо, особенно когда рядом со снимком
LOGIN
экрана указано имя…2. Скорее всего, ваш «общедоступный IP-адрес» — это общедоступный IP-адрес вашего маршрутизатора, а не IP-адрес компьютера, на котором запущен SQL Server.
3. Если хост находится в той же сети/домене, что и ваш хост SQL Server? Если это так, то ваш общедоступный IP-адрес-это не то, что вам нужно; это IP-адрес хоста SQL Server. если они не находятся в одном домене, и вы подключаетесь по глобальной сети, вам необходимо убедиться, что у вас включена переадресация портов, и вы ограничиваете этот порт доступом только к общедоступному IP-адресу этого внешнего хоста (в противном случае будьте готовы к тому, что ваш хост SQL Server подвергнется грубой принудительной атаке).
4. @Larnu Спасибо тебе! Это всего лишь тестовая база данных, в которой ничего нет, но я удалил IP-адрес
5. Прямо сейчас они находятся в одной сети, но мне нужно, чтобы она также работала в двух отдельных сетях. Какой IP-адрес мне следует использовать в таком случае?