Ubuntu (12.10) で ODBC の問題が発生しています。それについての最も奇妙な部分-私はこれをすべて1年前に設定しましたが、最近まで問題はありませんでした.
FreeTDS / ODBC を使用して MS SQL Server に接続しようとしています。私は主に sqsh を使用してサーバーと通信しますが、何か分析を行う必要がある場合は、RODBC を使用してデータを R に取り込みます。昨日、これをやろうとしたところ、失敗しました。
sqsh / tsql を使用してデータベースに接続できます。これは、FreeTDS がまだ正しくセットアップされていると思わせます。問題は ODBC 側にあるようです。そこで、osql を取り出したところ、最も奇妙なエラーが発生しました。
checking shared odbc libraries linked to isql for default directories...
strings: '': No such file
trying /tmp/sql ... no
trying /tmp/sql ... no
trying /etc ... OK
checking odbc.ini files
reading /home/andy/.odbc.ini
[CANS] found in /home/andy/.odbc.ini
found this section:
[CANS]
Description = FreeTDS
Driver = FreeTDS
Servername = Portland
Database = CANS
UID = NotRelevant
PWD = NotRelevant
Port = 1433
looking for driver for DSN [CANS] in /home/andy/.odbc.ini
found driver line: " Driver = FreeTDS"
driver "FreeTDS" found for [CANS] in .odbc.ini
found driver named "FreeTDS"
"FreeTDS" is not an executable file
looking for entry named [FreeTDS] in /etc/odbcinst.ini
found driver line: " Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so"
found driver /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so for [FreeTDS] in
odbcinst.ini
/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so is an executable file
Using ODBC-Combined strategy
DSN [CANS] has servername "Portland" (from /home/andy/.odbc.ini)
cannot read "/home/andy/.freetds.conf"
/etc/freetds/freetds.conf is a readable file
looking for [Portland] in /etc/freetds/freetds.conf
found this section:
[Portland]
host = 63.***.**.***
port = 1433
tds version = 8.0
client charset = UTF-8
looking up hostname for ip address 63.***.**.***
osql: no IP address found for "host145.actwd.net"
IPアドレスがすでにあるのに、なぜosqlがIPアドレスを解決しようとするのか理解できません。このサーバーには、保護するためにかなりの量の IP ブロッキングが行われており、ホワイトリストに登録された一連の IP アドレスからのみアクセスできます。アドレスに対して DNS ルックアップを実行することはできません。オフィスにいるのでIPアドレスは問題なく、しかもtsqlで接続できるのでこの部分は問題ないはずなのですが、ここが失敗ポイントのようです。
考え?
もう 1 つ注意してください。actwd.net は私たちのホストです。ですから、これはまったくおかしなことではありません。私が渡した IP アドレスを使用しない理由がわかりません。