当前位置:编程学习 > php >>

Warning: mssql_connect(): Unable to connect to server解决办法

在php调用mssql的时候经常遇到这个问题

WIN环境下的Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server

通常我们可以根据以下步骤排查问题:

1.确定SQL装的时候用的是混合认证模式,或SQL验证模式
2.确定SQL2000装好后已打上SP4补丁
3.把“localhost”换成你的计算机名或是“127.0.0.1”
4.在PHP.ini文件里改mssql.secure_connection = On
5.查看本地MSSQL端口是不是1433,并且本机端口是否开放状态,如果端口变了相应服务地址后加“,端口号”,注意是逗号,不是冒号。
PHP连MSSQL的问题(NTWDBLIB.DLL在作怪)
而同事就可以连,他比较了ntwdblib.dll这个文件,版本都是2000.2.8.0。唯一不同的是他的机子装了MSSQL,怀疑是这个原因。
搜索了下,发现确实是这个原因。也有不少人碰到装了MSSQL就可以连远程MSSQL,没装则不行。
试验了下,发现原因还是在于NTWDBLIB.DLL这个文件。我本机是php5自带的,版本为2000.2.8.0,他也是。
在MSSQL光盘中搜索这个文件,找到NTWDBLIB.DLL,版本是2000.80.194.0。
将这个文件,Copy到php安装目录和c:\windows\system32目录下,停掉IIS或Apache。
一个Case需要使用PHP5连接MS SQL Server 2005,找了些资料自己琢磨了下,搞定了,呵呵
步骤:
1. 首先按通常做法配置好PHP5连接MS SQL Server
2. 下载正确版本的 ntwdblib.dll (2000.80.194.0)
3. 覆盖 apache2.2.6\bin twdblib.dll
4. 覆盖 php5.2.5 twdblib.dll
5. 运行 SQL Server 配置管理器:SQL Server Configuration Manager,打开协议 Protocols
6. 允许命名管道 "named pipes" 和 "tcp/ip"
7. 右键点击 "tcp/ip",打开属性 Properties 标签 "IP addresses"
8. 在 TCP 动态端口 "TCP Dynamic Ports" 填入 1433
9. 重启 SQL Server、Apache和PHP
使用以下方式连接MS SQL Server 2005:
mssql_connect('localhost,1433', USERNAME, PASSWORD);
另请注意:
如果更改了默认的1433端口号,则IP地址后面加端口号,用,号隔开,不是:号,如
$linkId = mssql_connect('IP地址,端口号','用户名','密码');
其实直接把php5自带的那个ntwdblib.dll考到system32(可以尝试一下)

站长资源库提示,我通过增加端口1433解决了问题,大家也可以直接输入账号和密码试试吧 

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,