Проблема FreeTDS при подключении к SQL Server на Mac (неожиданный EOF с сервера) - PullRequest
8 голосов
/ 07 августа 2011

Я настроил FreeTDS для подключения к базе данных SQL Server.Когда я пытаюсь открыть TSQL в терминале на Mac (лев), я получаю эту ошибку:

locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 20017 (severity 9):
    Unexpected EOF from the server
    OS error 36, "Operation now in progress"
Error 20002 (severity 9):
    Adaptive Server connection failed
There was a problem connecting to the server

Кто-нибудь знает, что может быть причиной этого?

Ответы [ 6 ]

11 голосов
/ 13 августа 2011

Кажется, я понял, это настроенная версия TDS, у меня была 5.0, что вызвало ошибку

Попробуйте запустить tsql -C, чтобы проверить, какую версию вы используете, и затем вы можете вызвать tsqlпереопределив версию с помощью:

TDSVER=7.0 tsql -H hostname -p port -U domain\\\username -P password

и все заработало!

9 голосов
/ 02 марта 2012

Чтобы сделать это постоянным, я обнаружил, что мне нужно отредактировать файл freetds.conf и установить его там глобально

vim /usr/local/freetds/etc/freetds.conf

tds version = 8.0

запуск tsql -C все еще показывал, что версия была 5.0, но подключение теперь работало каждый раз.

8 голосов
/ 17 августа 2012

Версия TDS должна соответствовать правильному протоколу tds для подключения к вашему серверу БД, см. Ниже -

http://www.freetds.org/userguide/choosingtdsprotocol.htm

Выбор версии протокола TDS

***DB SERVER        |    TDS VERSION ***    
Microsoft SQL Server 6.x    = 4.2       
Sybase System 10 and above  = 5.0       
Sybase System SQL Anywhere  = 5.0     
Microsoft SQL Server 7.0    = 7.0       
Microsoft SQL Server 2000   = 7.1       
Microsoft SQL Server 2005   = 7.2   
Microsoft SQL Server 2008   = 7.2 
2 голосов
/ 06 ноября 2012

Также отсутствует символическая ссылка на libtdsodbc.so в /usr/lib/odbc (для меня)

sudo ln /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so libtdsodbc.so 

должно помочь

0 голосов
/ 19 апреля 2019

Я столкнулся с той же ошибкой. Затем я сделал следующее, и ошибка исчезла:

  1. pip install pyodbc
  2. Ранее я использовал кавычки для сервера БД, имени пользователя и pwd в команде TSQL. На этот раз я удалил кавычки .
0 голосов
/ 07 июля 2017

У меня была такая же проблема.В моей ситуации имя пользователя для базы данных Microsoft SQL Server было в форме DOMAIN\userid.Однако, когда я набрал его в командной строке, я думаю, что он интерпретировал косую черту как escape-символ.Когда я попытался поставить косую черту в другом направлении, это все равно не удалось.Наконец, я попытался поставить две косые черты в первоначальном направлении, и это сработало.Таким образом у меня сработало следующее:

tsql -S myhost -U DOMAIN\\userid
...