2012-08-01

FreeTDSのバージョンをあげたら接続できなくなったところがあった

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
FreeTDSをv0.82からv0.91にあげてみました。
そしたら一部接続ができなくなってしまったのです。
接続的なくなったのは、以下のように設定したSQL Serverです。

freetds.conf
[abc]
 host = 192.168.0.111
 instance = SQLEXPRESS
 tds version = 8.0
 charset = sjis
 client charset = UTF-8

odbc.ini
[def]
Driver = /usr/local/lib/libtdsodbc.so
Description = Microsoft SQL Server
Servername = abc
Database = testdb
Port = 1433


tsql -S abc -U user -P pass
では接続できるのに
isql -v def user pass
では接続できないという感じです。
v0.82の時は、どちらも接続できていました。

で、これを解決する方法ですが
odbc.iniを以下のように修正すればOKです。

[def]
Driver = /usr/local/lib/libtdsodbc.so
Description = Microsoft SQL Server
Servername = abc
Database = testdb
#Port = 1433


PortをコメントアウトすればOKです。
原因はSQLEXPRESSとなっている場合は、ポートがどうも動的に変化するようです。
v0.82ではodbc.iniのPort設定を無視していたのですが、v0.92ではodbc.iniで指定されたPortで接続をかけようとするため接続ができなかったというわけでした。

0 件のコメント: