Freetds 连接数据库问题

 今天一个项目,需要用到连接SQLSERVER数据库,获取数据,按照以往的做法 ,安装了LNMP,装完之后在安装Freetds,然后在独立添加PHP的MSSQL的模块,./configure  make &&make install    然后在PHP.ini 添加扩展MSSQL模块 一路安装顺利,安装好了以后,我在本地测试 tsql -H 192.168.1.33 -U sa -P 12345  可以登录Sqlserver ,还可以查询到数据

 

然后就很自然的,重启PHP  NGINX   然后告诉开发,环境OK了 ,可以开始测试了,结果过了不到5分钟 开发告诉我获取不了数据,我让开发发给我了一条链接,我登录测试一看,果然是获取不到数据,并且还报错,登录系统查看了日志 ,提示waring  mssql_driver line 113 不管怎样调试 通过PHP去获取数据就报错,通过MSSQL 驱动 本地连接就正常。折腾了一天半。后来问题终于找到了,原来是版本问题

我的环境 freetds版本是 0.95.0  PHP版本是 5.5.24    要连接的数据库是 SQL2005

在重新编译freeTDS 的时候 指定版本  ./configure --prefix=/usr/local/freetds/ --with-tdsver=7.1  --enable-msdblib

查了一些资料 说Freetds 编译安装的时候如果默认不指定版本 默认是5.0  这个是匹配SQSERVER 2000 数据库的    指定8.0版本的是 SQLSERVER 2008 的  其他的我没求证过,没那个版本的数据库,就为了这个小小的问题 坑了我一天半,特别记录一下,以后在踩类似的坑的时候 可以快速填坑

 

posted @ 2015-09-25 11:19  Water clouds  阅读(904)  评论(0编辑  收藏  举报