FreeTDS не использует настроенную версию tds
freetds v0.91 - несоответствие версии tds
Я хочу подключиться к Windows SQL Server с FreeBSD в Ubuntu 14.04. FreeTDS устанавливается с помощью apt-get. Я пробовал другую версию TDS с помощью следующих команд:
$ TDSVER=7.0 tsql -H xxx.xxx.xxx.xxx -U xxxx -p 1433 -P xxxxxxx
Файл журнала показывает:
...
net.c:205:Connecting to xxx.xxx.xxx.xxx port 1433 (TDS version 7.0)
net.c:270:tds_open_socket: connect(2) returned "Operation now in progress"
net.c:310:tds_open_socket() succeeded
...
Здесь нет проблем. Но если я изменю TDSVER на 7.4:
$ TDSVER=7.4 tsql -H xxx.xxx.xxx.xxx -U xxxx -p 1433 -P xxxxxxx
Версия TDS становится 4.2?
...
net.c:205:Connecting to xxx.xxx.xxx.xxx port 1433 (TDS version 4.2)
net.c:270:tds_open_socket: connect(2) returned "Operation now in progress"
net.c:310:tds_open_socket() succeeded
...
Вывод команды $ tsql -C
является:
Compile-time settings (established with the "configure" script)
Version: freetds v0.91
freetds.conf directory: /etc/freetds
MS db-lib source compatibility: no
Sybase binary compatibility: yes
Thread safety: yes
iconv library: yes
TDS version: 4.2
iODBC: no
unixodbc: yes
SSPI "trusted" logins: no
Kerberos: yes
Я попытался настроить версию TDS в ~/.freetds.conf, результаты совпадают.
freetds v1.00.9 - совпало
Затем я попытался собрать версию, загруженную из git, и установить ее в мою домашнюю папку. Кажется, версия соответствует:
$ TDSVER=7.4 .local/bin/tsql -H xxx.xxx.xxx.xxx -U xxxx -p 1433 -P xxxxxxx
...
iconv.c:384:tds_iconv_open: done
net.c:216:Connecting to xxx.xxx.xxx.xxx port 1433 (TDS version 7.4)
net.c:242:tds_open_socket: connect(2) returned "Operation now in progress"
net.c:343:tds_open_socket() succeeded
...
Выход из $ .local/bin/tsql -C
является:
Compile-time settings (established with the "configure" script)
Version: freetds v1.00.9
freetds.conf directory: /home/bgdata/.local/etc
MS db-lib source compatibility: no
Sybase binary compatibility: no
Thread safety: yes
iconv library: yes
TDS version: auto
iODBC: no
unixodbc: yes
SSPI "trusted" logins: no
Kerberos: no
OpenSSL: no
GnuTLS: no
MARS: no
Это ошибка v0.91 или я что-то не так сделал? Благодарю.
1 ответ
FreeTDS 0.91 не поддерживает TDS версии 7.4. У меня есть запрос на включение, который, я надеюсь, станет более понятным в документации:
https://github.com/FreeTDS/freetds/pull/71/files
- FreeTDS 1.0+ поддерживает до версии TDS
7.4
- FreeTDS 0.95 поддерживает до версии TDS
7.3
- FreeTDS 0.91 поддерживает до версии TDS
7.2
Кроме того, никогда не используйте 8.0
если вы не используете очень старую версию FreeTDS (которой не должно быть в данный момент). Это длинная история, также описанная в документации, но в Интернете есть множество "руководств", рекомендующих ее. Возвращается к версии 7.0
и может создавать проблемы.