2011-06-02 55 views
2

我必須將我們爲客戶端編寫的應用程序移動到新的服務器以及我使用PHP啓動的遠程連接mssql_connect已停止工作。我注意到PHP沒有使用mssql編譯,因此我要求服務器管理員安裝它。我可以驗證它現在是否通過PHP信息安裝,但現在我從mssql_connect獲得了一致的「無法連接到服務器」錯誤。爲什麼我的服務器不能使用PHP mssql_connect連接到遠程MSSQL服務器?

這裏是我跑了很簡單的PHP腳本:

$myServer = "myserver.com:5000"; 
$myUser = "myusername"; 
$myPass = "mypassword"; 

$dbhandle = mssql_connect($myServer, $myUser, $myPass) 
or die("Couldn't connect to SQL Server on $myServer. Error: " . mssql_get_last_message()); 

我已經證實,憑證仍是正確的,但不管是什麼原因,似乎mssql_connect只是沒有做這件事。我想知道是否有某些管理員已經忘記安裝擴展程序和FreeTDS。任何指針非常感謝! :)

問題已解決!

畢竟它是/usr/local/freetds/etc/freetds.conf中指定的FreeTDS協議版本號,必須取消第13行的註釋。就是這樣! :)

+1

它立即失敗或在一些超時後失敗?確切的錯誤信息?你能從一些SQL工具連接嗎? – gbn 2011-06-02 13:22:35

+0

可能是防火牆/路由/ dns類型的問題。你能連接到主機/端口(使用例如telnet)從你的PHP主機? – Mat 2011-06-02 13:23:40

+0

我已經設置FreeTDS來記錄錯誤,它報告「服務器意外的EOF」......不知道這是'我的服務器'還是遠程'SQL服務器'。順便說一下,遠程服務器是SQL Server 2000. – 2011-06-02 14:15:03

回答

3

畢竟它是/usr/local/freetds/etc/freetds.conf中指定的FreeTDS協議版本號,必須取消註釋行號13。就是這樣! :)

0

在安裝服務器的服務器上很有可能會禁用遠程連接。您是否檢查過您是否實際上能夠從嘗試連接到它的網絡服務器的IP地址遠程連接到數據庫服務器?通常,至少在大多數共享主機方案中,數據庫服務器只接受來自本地主機的連接。您需要將Web服務器的IP地址添加到白名單(通常在服務器的配置中)以允許從外部進行連接。

+0

嗨雅,感謝您的建議。我要連接的遠程服務器已將我的服務器IP列入白名單。我想知道是否有一些設置在'啓用'FreeTDS或類似的方面被錯過了。 :( – 2011-06-02 14:00:28

相關問題