我必須將我們爲客戶端編寫的應用程序移動到新的服務器以及我使用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行的註釋。就是這樣! :)
它立即失敗或在一些超時後失敗?確切的錯誤信息?你能從一些SQL工具連接嗎? – gbn 2011-06-02 13:22:35
可能是防火牆/路由/ dns類型的問題。你能連接到主機/端口(使用例如telnet)從你的PHP主機? – Mat 2011-06-02 13:23:40
我已經設置FreeTDS來記錄錯誤,它報告「服務器意外的EOF」......不知道這是'我的服務器'還是遠程'SQL服務器'。順便說一下,遠程服務器是SQL Server 2000. – 2011-06-02 14:15:03