今天在配置金石工程項(xiàng)目管理網(wǎng)絡(luò)版的時(shí)候,要配置數(shù)據(jù)庫連接,我機(jī)器上環(huán)境是winxp+sql server2005,于是填入sqlserver的連接URL:\\192.168.1.100:1433,按下一步的時(shí)候卻提示不能連接到數(shù)據(jù)庫。愣了一下,意識(shí)到sqlserver服務(wù)沒有開(因?yàn)槠綍r(shí)不是一直使用sqlserver,所以都會(huì)把sqlserver相關(guān)幾個(gè)服務(wù)禁用掉以節(jié)省資源,同是在這里提醒一下:很多時(shí)候連接不上sql server,最常見的原因是沒有開啟服務(wù)^_^)
開啟服務(wù)后再連接,還是失敗。突然又意思到:好像沒有允許遠(yuǎn)程連接,于是打開“外圍應(yīng)用配置器”—“服務(wù)和連接的外圍應(yīng)用配置器”—“DATABASE ENGINE”—“遠(yuǎn)程連接”,選擇了"同時(shí)使用TCP/IP和named pipes",確定,重啟服務(wù),在連接,還是失敗...
以往連接不上sqlserver,來到這步都可以解決了,但是現(xiàn)在是什么問題呢?難道 192.168.1.100不是我自己的IP?馬上"cmd"-"ipconfig",發(fā)現(xiàn)自己IP正是192.168.1.100,然后打開“SQL SERVER Configuration Manager”—"SQL SERVER 2005的網(wǎng)絡(luò)配置"—“DAOYONG的協(xié)議”(DAOYONG是我SQLSERVER實(shí)例名稱),右擊“TCP/IP”協(xié)議,選擇“屬性”,并進(jìn)入“IP地址”tab,檢查有沒有問題。
發(fā)現(xiàn)沒有填寫IP,于是把IP1一欄填寫起來,并在“已啟用”一欄選“是”,順便將IP2的“已啟用”選擇“否”,確定,重啟服務(wù)。重新連接的時(shí)候還是連接不上??!煩吶,于是上網(wǎng)google了一下,有的人說是要打補(bǔ)丁,我用windows驗(yàn)證連接進(jìn)入,運(yùn)行了一下"select @@version",得出的版本是9.0.xxx,跟網(wǎng)上描述的要打補(bǔ)丁的情況有很大不同,應(yīng)該不是補(bǔ)丁引起的問題。無意中開到一個(gè)網(wǎng)友說把防火墻關(guān)掉!我恍然大悟:防火墻屏蔽了1433端口!! 于是關(guān)掉了防火墻。但意外的是,還是連接不上。
說到端口,我想:是不是端口有問題?于是"cmd"—“netstat -a -n ”查看一下,但竟然沒有發(fā)現(xiàn)有監(jiān)聽1433端口,怪不得連接不上。但是為什么沒有監(jiān)聽到1433端口呢?我明明在IP1里面設(shè)置了TCP端口為1433,這是經(jīng)過一輪google,又看到一個(gè)網(wǎng)友提到:把IPALL設(shè)置成1433。于是照辦,竟然行了??!很奇怪,于是又google了一下,找到的答案是:http://support.microsoft.com/kb/265808,大概意思就是:,如果在“TCP/IP屬性”中的“協(xié)議”中將“全部偵聽”選擇為"是",則可以為所有TCP/IP連接指定默認(rèn)的端口(端口號(hào)為“IPALL”欄中的端口號(hào)),如果“全部偵聽”選擇為"否"則可為不同IP獨(dú)立設(shè)置端口號(hào)。
總結(jié):
SQL SERVER出現(xiàn)無法連接(或無法通過IP進(jìn)行連接),多數(shù)是一下幾種原因:
1.服務(wù)沒有開放
2.防火墻屏蔽了端口(通常是1433端口)
3.沒有允許遠(yuǎn)程訪問。在外配應(yīng)用配置器中設(shè)置“允許遠(yuǎn)程訪問”
4.TCP/IP協(xié)議中,基于TCP/IP遠(yuǎn)程連接的IP選項(xiàng)設(shè)置不正確(通常是填錯(cuò)IP,或者填對(duì)但沒有啟用)
5.(如我現(xiàn)在碰到的問題)選擇了”全部偵聽“,但沒有設(shè)置到"IPALL"的TCP端口號(hào)。
題外話:一般搞IT的遇到問題,在網(wǎng)絡(luò)上搜索幾乎都能找到解決辦法(可憐的google被間歇性封鎖后,俺只能時(shí)常使用bing了)
聯(lián)系客服