1

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 アドレスを使用しない理由がわかりません。

4

2 に答える 2

1

今日のレッスン - スタック オーバーフローに何かを投稿する前に - ポート番号が 1433 から 1044 に変更されたことに気付くべきでした。

SQL Server はポート 1433 での接続を想定しています。1044 ではありません。コンピューターが本当に嫌いな日があります。. . .

于 2012-11-21T16:20:21.983 に答える