osql找不到IP地址,tsql适用于Ubuntu

时间:2012-11-21 15:43:30

标签: linux odbc freetds

我在Ubuntu上遇到ODBC问题(12.10)。关于它的最奇怪的部分 - 我在一年前完成了这一切,并且直到最近还没有遇到任何麻烦。

我正在尝试使用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"

我不明白为什么osql在尝试解析IP地址时为什么会这样做。此服务器有相当多的IP阻止,以帮助保护它,您只能从一组列入白名单的IP地址访问它。您无法对该地址执行DNS查找。我在办公室,所以我的IP地址很好,而且,我可以使用tsql连接,所以这部分应该不是问题,但这看起来像是失败点。

思想?

另外一点,actwd.net是我们的主人。所以,这不完全是滑稽的,我只是不知道它为什么不使用我正在处理的IP地址。

2 个答案:

答案 0 :(得分:1)

今天的教训 - 在将内容发布到Stack Overflow之前 - 我应该注意到我的端口号从1433变为1044.不知道我是怎么做到的,但这就是问题。

SQL Server期望在端口1433上建立连接。不是1044.有几天我真的不喜欢电脑。 。 。 。

答案 1 :(得分:0)

我收到IP地址错误,因为odbc.ini指定的是“服务器”设置,而不是“服务器名”设置。前者是实际的服务器,后者是freetds.conf中的条目。