Linux osql找不到IP地址,tsql在Ubuntu上工作

Linux osql找不到IP地址,tsql在Ubuntu上工作,linux,odbc,freetds,Linux,Odbc,Freetds,我在Ubuntu(12.10)上遇到ODBC问题。最奇怪的是,这一切都是我一年前设置的,直到最近才有任何问题 我正在尝试使用FreeTDS/ODBC连接到MS SQL Server。我主要使用sqsh与服务器通信,但当我需要进行任何分析时,我会使用RODBC将数据拉入R。昨天,当我尝试这样做时,失败了 我可以使用sqsh/tsql连接到数据库。这让我觉得FreeTDS仍然设置正确。问题似乎出在ODBC方面。所以,我取出了osql,得到了最奇怪的错误 checking shared odbc li

我在Ubuntu(12.10)上遇到ODBC问题。最奇怪的是,这一切都是我一年前设置的,直到最近才有任何问题

我正在尝试使用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地址。

今天的课程-在将某些内容发布到堆栈溢出之前-我应该注意到我的端口号不知怎么地从1433更改为1044。不知道我是怎么做到的,但这就是问题所在


SQL Server需要在端口1433上建立连接。不是1044。有时候我真的不喜欢电脑

今天的课程-在将内容发布到堆栈溢出之前-我应该注意到我的端口号从1433更改为1044。不知道我是怎么做到的,但这就是问题所在


SQL Server需要在端口1433上建立连接。不是1044。有时候我真的不喜欢电脑

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

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

osql
的作用是:
HOST=$(HOST${HOST}awk'/domain/{print$5}';sed's/\.$/')
因此,如果出现任何问题,它将告诉您“没有DNS主机名”。在我的例子中,没有安装
host
命令。
osql
会:
host=$(host${host}awk'/domain/{print$5}'| sed's/\.$/')
因此,如果出现任何问题,它会告诉您“没有DNS主机名”。在我的例子中,没有安装
host
命令。