今天在配置金石工程項目管理網(wǎng)絡(luò )版的時(shí)候,要配置數據庫連接,我機器上環(huán)境是winxp+sql server2005,于是填入sqlserver的連接URL:\\192.168.1.100:1433,按下一步的時(shí)候卻提示不能連接到數據庫。愣了一下,意識到sqlserver服務(wù)沒(méi)有開(kāi)(因為平時(shí)不是一直使用sqlserver,所以都會(huì )把sqlserver相關(guān)幾個(gè)服務(wù)禁用掉以節省資源,同是在這里提醒一下:很多時(shí)候連接不上sql server,最常見(jiàn)的原因是沒(méi)有開(kāi)啟服務(wù)^_^)

開(kāi)啟服務(wù)后再連接,還是失敗。突然又意思到:好像沒(méi)有允許遠程連接,于是打開(kāi)“外圍應用配置器”—“服務(wù)和連接的外圍應用配置器”—“DATABASE ENGINE”—“遠程連接”,選擇了"同時(shí)使用TCP/IP和named pipes",確定,重啟服務(wù),在連接,還是失敗...
以往連接不上sqlserver,來(lái)到這步都可以解決了,但是現在是什么問(wèn)題呢?難道 192.168.1.100不是我自己的IP?馬上"cmd"-"ipconfig",發(fā)現自己IP正是192.168.1.100,然后打開(kāi)“SQL SERVER Configuration Manager”—"SQL SERVER 2005的網(wǎng)絡(luò )配置"—“DAOYONG的協(xié)議”(DAOYONG是我SQLSERVER實(shí)例名稱(chēng)),右擊“TCP/IP”協(xié)議,選擇“屬性”,并進(jìn)入“IP地址”tab,檢查有沒(méi)有問(wèn)題。

發(fā)現沒(méi)有填寫(xiě)IP,于是把IP1一欄填寫(xiě)起來(lái),并在“已啟用”一欄選“是”,順便將IP2的“已啟用”選擇“否”,確定,重啟服務(wù)。重新連接的時(shí)候還是連接不上??!煩吶,于是上網(wǎng)google了一下,有的人說(shuō)是要打補丁,我用windows驗證連接進(jìn)入,運行了一下"select @@version",得出的版本是9.0.xxx,跟網(wǎng)上描述的要打補丁的情況有很大不同,應該不是補丁引起的問(wèn)題。無(wú)意中開(kāi)到一個(gè)網(wǎng)友說(shuō)把防火墻關(guān)掉!我恍然大悟:防火墻屏蔽了1433端口!! 于是關(guān)掉了防火墻。但意外的是,還是連接不上。

說(shuō)到端口,我想:是不是端口有問(wèn)題?于是"cmd"—“netstat -a -n ”查看一下,但竟然沒(méi)有發(fā)現有監聽(tīng)1433端口,怪不得連接不上。但是為什么沒(méi)有監聽(tīng)到1433端口呢?我明明在IP1里面設置了TCP端口為1433,這是經(jīng)過(guò)一輪google,又看到一個(gè)網(wǎng)友提到:把IPALL設置成1433。于是照辦,竟然行了??!很奇怪,于是又google了一下,找到的答案是:http://support.microsoft.com/kb/265808,大概意思就是:,如果在“TCP/IP屬性”中的“協(xié)議”中將“全部偵聽(tīng)”選擇為"是",則可以為所有TCP/IP連接指定默認的端口(端口號為“IPALL”欄中的端口號),如果“全部偵聽(tīng)”選擇為"否"則可為不同IP獨立設置端口號。


總結:
SQL SERVER出現無(wú)法連接(或無(wú)法通過(guò)IP進(jìn)行連接),多數是一下幾種原因:
1.服務(wù)沒(méi)有開(kāi)放
2.防火墻屏蔽了端口(通常是1433端口)
3.沒(méi)有允許遠程訪(fǎng)問(wèn)。在外配應用配置器中設置“允許遠程訪(fǎng)問(wèn)”
4.TCP/IP協(xié)議中,基于TCP/IP遠程連接的IP選項設置不正確(通常是填錯IP,或者填對但沒(méi)有啟用)
5.(如我現在碰到的問(wèn)題)選擇了”全部偵聽(tīng)“,但沒(méi)有設置到"IPALL"的TCP端口號。
題外話(huà):一般搞IT的遇到問(wèn)題,在網(wǎng)絡(luò )上搜索幾乎都能找到解決辦法(可憐的google被間歇性封鎖后,俺只能時(shí)常使用bing了)
聯(lián)系客服