我有一个计算机,A,与一个PHP程序,连接和操纵计算机B1中的数据库。为了连接到MS SQL服务器,我使用了以下脚本,它工作得很好。此SQL server上只有一个帐户,它是"sa“。
$server = 'WAREHOUSE1\MYDB';
$connectionInfo = array("UID" => "sa", "PWD" => "something", "Database"=>"MYDB");
$dbcMssql = sqlsrv_connect($server, $connectionInfo);
我们买了一台新电脑,B2,来代替这台电脑,因为它又旧又慢。我设置了新的数据库并从B1中恢复了它,设置了防火墙设置,就像在B1中一样,选中了“允许远程连接”,并在MS SQL Server Management Studio中选择了"SQL Swrver and Windows Auth. mode“等等。我能够使用MS SQL Server Management Studio从计算机A连接到计算机B1和B2上的数据库。我甚至使用相同的用户id ("sa")和密码将这些表链接到MS Access (OBDC数据库)。
问题是,在新的计算机B2上,我的PHP脚本不再工作,即使我可以使用MS程序连接到它。除了我在设置B1时已经做过的事情之外,我不记得我还设置了其他任何东西。sqlsrv_errors()中的错误如下所示。
[SQLSTATE] => 28000
[code] => 18456
[message] => [Microsoft][SQL Server Native Client 10.0][SQL Server]Login failed for user 'sa'.
由于某种原因,服务器文件夹上的errorlog文件中没有记录错误,因此我不知道错误的状态是什么。可能的问题是什么?今天下午我已经读了好几篇文章了,但是我不能让这篇文章工作起来!再说一次,从A连接到B1是正常的,这让我相信我没有在B2上设置什么。B1和B2具有相同版本的SQL server。
发布于 2012-01-05 07:30:06
IRC TCP/IP协议在默认安装时被禁用。您需要转到SQL Server Config并从那里启用它。
编辑:好的,再读一遍,如果你能够通过TCP/IP远程连接,那么它应该也能从你的PHP脚本中工作。您确定连接字符串最终指向正确的(B2?)服务器吗?这会是一个名称解析问题吗?
https://stackoverflow.com/questions/8735535
复制相似问题