FreeTDS отображает неожиданный EOF с сервера - PullRequest
2 голосов
/ 20 апреля 2011

Я использую FreeTDS 0.82, установленную в OS X Snow Leopard, для подключения к базе данных SQL Server 2005.

Когда я пытаюсь соединиться с tsql, я получаю следующее:

tsql -S abc -U uuu
locale is "en_US.UTF-8"
locale charset is "UTF-8"
Password: 
Msg 20017, Level 9, State -1, Server OpenClient, Line -1
Unexpected EOF from the server
Msg 20002, Level 9, State -1, Server OpenClient, Line -1
Adaptive Server connection failed
There was a problem connecting to the serve

freetds.conf:

[abc]
        Host = host.host.domain
        port = 1433
        tds version = 8.0

файл журнала:

13:02:23.904572 97429 (log.c:190):Starting log file for FreeTDS 0.82 on 2011-04-20 13:02:23 with debug flags 0xffff.
13:02:23.904657 97429 (iconv.c:197):names for ISO-8859-1: ISO-8859-1
13:02:23.904669 97429 (iconv.c:197):names for UTF-8: UTF-8
13:02:23.904678 97429 (iconv.c:197):names for UCS-2LE: UCS-2LE
13:02:23.904686 97429 (iconv.c:197):names for UCS-2BE: UCS-2BE
13:02:23.904694 97429 (iconv.c:363):iconv to convert client-side data to the "UTF-8" character set
13:02:23.904715 97429 (iconv.c:516):tds_iconv_info_init: converting "UTF-8"->"UCS-2LE"
13:02:23.904729 97429 (iconv.c:516):tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
13:02:23.904744 97429 (net.c:210):Connecting to 174.46.169.40 port 1433 (TDS version 8.0)
13:02:23.904847 97429 (net.c:264):tds_open_socket: connect(2) returned "Operation now in progress"
13:02:23.966370 97429 (net.c:303):tds_open_socket() succeeded
13:02:23.966422 97429 (util.c:162):Changed query state from DEAD to IDLE
13:02:23.966433 97429 (login.c:735):quietly sending TDS 7+ login packet
13:02:23.966481 97429 (token.c:312):tds_process_login_tokens()
13:02:24.036207 97429 (util.c:334):tdserror(0x1001001d0, 0x100100840, 20017, 0)
13:02:24.036286 97429 (util.c:368):tdserror: client library returned TDS_INT_CANCEL(2)
13:02:24.036300 97429 (util.c:389):tdserror: returning TDS_INT_CANCEL(2)
13:02:24.036327 97429 (util.c:162):Changed query state from IDLE to DEAD
13:02:24.036338 97429 (token.c:316):looking for login token, got  0()
13:02:24.036478 97429 (token.c:108):tds_process_default_tokens() marker is 0()
13:02:24.036494 97429 (token.c:111):leaving tds_process_default_tokens() connection dead
13:02:24.036504 97429 (util.c:334):tdserror(0x1001001d0, 0x100100840, 20002, 0)
13:02:24.036614 97429 (util.c:368):tdserror: client library returned TDS_INT_CANCEL(2)
13:02:24.036626 97429 (util.c:389):tdserror: returning TDS_INT_CANCEL(2)
13:02:24.036639 97429 (mem.c:563):tds_free_all_results()

Я пробовал версии 7.2, 7 и т. д., и все они отображают одно и то же.

Ответы [ 5 ]

3 голосов
/ 09 мая 2012

Попробуйте с помощью

tds version = 7.0

Или задайте следующую переменную среды:

TDSVER="7.0"

Также убедитесь, что порт правильный, он может отличаться в зависимости от настроек времени компиляции.Вы можете установить в окружающей среде тоже с:

TDSPORT="1433"
1 голос
/ 27 сентября 2016

Эта ошибка периодически возникала после применения исправлений для Linux и MS.Мы все еще можем подключиться из Linux к серверу MSSQL, но случайно наше соединение завершится с ошибкой EOF ... даже в середине запроса.Я включил журнал freetds и увидел сбой при рукопожатии:решил проблему.

1 голос
/ 28 августа 2013

Я экспериментирую с MacOSX freetds:

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

После удаления файла .freetds.conf все было в порядке

rm /Users/user/.freetds.conf

основной файл:

sudo vi /opt/local/etc/freetds/freetds.conf

1 голос
/ 29 мая 2013
client charset = ISO-8859-1

в freetds.conf решена проблема на OSX 10.8./ freetds 0,91

0 голосов
/ 21 июня 2012

У меня были проблемы с freetds.conf, очевидно. установка tds version = 8.0 в freetds.conf не работала, в журнале дампа она продолжала посылать INT CANCEL после шагов авторизации. мой php файл в конечном итоге выглядел так (настройки базы данных и порта в freetds.conf работали нормально ... не знаю, почему версия tds не работала):

putenv('TDSVER=8.0');<br />
putenv('TDSDUMP=tds.log');<Br />
putenv('FREETDSCONF=freetds.conf');<br />
putenv('FREETDS=freetds.conf');
...