前兩天安排手下給你一個客戶做服務,遇到了ODBC都串連不到SQL Server 2000的錯誤。經過檢查發現可能是如下錯誤:
一種可能是sql本身的bug
二種可能是安裝的英文版本,在漢化的過程中出現了問題
解決方案可以按照微軟官方網站的方法:
在 SQL Server 2000 自訂安裝中,如果只選擇了 TCP/IP 協議,並禁用了所有其他協議,SQL Server 可能無法初始化並偵聽 TCP/IP 通訊端。伺服器網路公用程式顯示它正在偵聽 TCP/IP 連接埠 1433,但它並未偵聽該連接埠。客戶機可能無法串連,並且可能會出現以下錯誤訊息:
Connection failed:SQL State:'01000' SQL Server Error:11004 [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen (Connect()).Connection Failed:SQL State:'08001' SQL Server Error:6 [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]Specified SQL server not found. Unable to connect to server 'servername':Server:Msg 6, Level 16 state 1. [Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]Specified SQL server not found. [TCP/IP Sockets]Specified SQL server not found.[TCP/IP Sockets]ConnectionOpen (Connect()).
請注意:除這種特定情況外,如果有其他 TCP/IP 串連問題,也可能會出現以上錯誤訊息。要確定 SQL Server 是否在偵聽 TCP/IP 連接埠,請檢查以下登錄機碼中的 TcpPort 是否被錯誤地設定為空白:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ [Instance Name]\MSSQLServer\SuperSocketNetLib\Tcp\REG_SZ TcpPort=
若要解決此問題,請按照下列步驟操作:
- 啟動登錄編輯程式 (Regedt32.exe)。
- 在以下登錄機碼中找到 TcpPort 值:具名執行個體:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\[InstanceName]\MSSQLServer\SuperSocketNetLib\Tcp\TcpPort
預設執行個體:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\TCP\TcpPort
- 在編輯菜單上,單擊字串。輸入以下兩個值之一:
- 鍵入您希望的連接埠號碼。
- 或 -
- 輸入值 0 以讓 SQL Server 在下次啟動時動態檢測並指定一個連接埠。
- 單擊確定。
- 退出登錄編輯程式。
也可以按照如下方法:
卸載之前安裝的資料庫,再安裝原版的SQL Server2000 資料庫企業版(中英版本都可以),接著要打上SP4升級包。