"Неожиданный EOF" при подключении к SQL Server
Я пытаюсь использовать pymssql для подключения к базе данных SQL Server 2012, работающей на Windows Server 2008.
db = pymssql.connect(host='xxx',user='xxx',password='xxx',database='xxx')
Однако я получаю следующую ошибку:
OperationalError: (20017, "Сообщение об ошибке DB-Lib 20017, серьезность 9:\n Неожиданный EOF от сервера, сообщение об ошибке \nDB-Lib 20002, серьезность 9:\n Ошибка подключения к адаптивному серверу \n')
Полная ошибка:
Traceback (most recent call last):
File "XXX.py", line 2, in <module>
conn = pymssql.connect(host = 'XXX.com', user = 'xxx', password = 'xxx', database = 'xxx')
File "pymssql.pyx", line 556, in pymssql.connect (pymssql.c:7990)
raise OperationalError(e[0])
OperationalError: (20017, '\xa0\xff\xaf\x02\x90_\x8d\x02L\xd6\xa7\x02\xda\xad;DB-Lib error message 20017, severity 9:\nUnexpected EOF from the server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed\n')
Может ли кто-нибудь помочь мне понять, что происходит?
1 ответ
Я думаю, что это может быть полный сбой соединения. Я знаю, что там написано "EOF", но иногда такие сообщения об ошибках вводят в заблуждение.
Я бы посмотрел, можно ли сначала пропинговать хост с того места, где вы запускаете скрипт.
Во-вторых, я посмотрю, сможете ли вы получить TCP-соединение с портом, который вы используете.
Я слышал об ошибках EOF в http-соединениях, когда вы подключаетесь через https к http-порту. Я не уверен, применимо ли это здесь.
Это появилось в Google. Это может помочь:
http://sourceforge.net/projects/pymssql/forums/forum/124111/topic/1672338
Если все вышеперечисленное работает, я бы дважды проверил правильность имени пользователя и пароля; возможно даже создать нового пользователя.
Наконец, я проверю совместимость версий клиентской и серверной библиотек.
Надеюсь, это поможет.
pymssql
потребности freetds
работать правильно. В macOS откройте/usr/local/etc/freetds.conf
в предпочитаемом текстовом редакторе и обновите следующую конфигурацию:
[global]
# TDS protocol version
# tds version = auto
tds version = 7.0
Вы можете попробовать еще раз и посмотреть, исчезла ли ошибка.
Ссылка здесь.