注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

^_^ china.ygw的博客

软件开发/c/c++/数据库/开源/linux/windows/安全/网络...

 
 
 

日志

 
 
 
 

UnixODBC联合FreeTDS连接SQL Server 2000失败问题解决  

2011-08-01 22:44:10|  分类: UnixODBC |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

       当前,Linux系统下的数据库操作基本使用开源软件UnixODBC,不管是连接MySQL、Oracle、SQL Server数据库,还是其它类型数据库,对于软件开发人员来说,只需要增加指定数据库的驱动支持,对于代码基本不需要进行任何修改(当然,有些SQL语句因为不同类型数据库,可能会有些差异)。

       FreeTDS也是一款开源的SQL Server数据库驱动,支持SQL Server多个版本。这几天在使用UnixODBC联合FreeTDS连接SQL Server 2000数据库时,总是失败,报错如下:

       Unable to connect: Adaptive server is unavailable or does not exist.

       我的FreeTDS配置如下:

       [SQLSERVER]
       host = xxx.xxx.xxx.xxx
       port = 1433
       tds version = 8.0
       client charset = UTF-8

       看了不下N遍相关配置信息,没有任何问题。ldd了相关驱动文件,也没有任何连接库的问题。最关键的是,在这之几还成功过,百思不得其解。

       后面,把FreeTDS的调试日志功能打开:修改FreeTDS安装目录下etc子目录的freetds.conf文件,在“[global]”结点下有一行“; dump file = /tmp/freetds.log”,行首缺省用“;”屏蔽调试日志功能,把行首的“;”符号去掉,即可打开调试日志功能,然后保存退出。

       再用isql或者tsql进行连接数据库测试,结果肯定还是失败。然后cat调试日志文件(配置文件指定的/tmp/freetds.log文件),会发现有一行显示连接信息如下:

       Connecting to xxx.xxx.xxx.xxx port 4000 (TDS version 5.0)
       答案就在上面一行的红色加粗字符中。我的配置文件设置的TDS Version是8.0,调试日志打印的是5.0。我配置文件设置的端口号是1433,而调试日志打印的是4000。

        原来我的FreeTDS采用源代码编译安装,的进行configure未设置“--with-tdsver=8.0”选项,所以安装时缺省使用5.0,而5.0的缺省端口就是4000。知道了问题的原因后,一切就好办了。重新对FreeTDS进行configure;make;make install,configure时增加--with-tdsver=8.0选项。

        重新安装后再用isql或tsql连接,一切OK^_^

  评论这张
 
阅读(2047)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018