999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQL Server連接中的常見錯誤之分析與解決

2009-04-29 00:00:00劉華云
電腦知識與技術 2009年24期

摘要:在使用SQL Server的過程中,用戶遇到最多的問題就是連接失敗。該文就使用客戶端工具和利用用戶自己開發的客戶端程序這兩種連接SQL Sercver的方式,分析在連接過程中出現的常見錯誤,并提出解決辦法。

關鍵詞:SQL Server;連接失敗;錯誤;解決方法

中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2009)24-6917-03

The Analysis And Solution Of Common Errors In SQL Server Connection

LIU Hua-yun

(Dept. ofSoftware, Jiangxi Vocational College of Ahead Software, Nanchang 330041, China)

Abstract: In the use of SQL Server, the user is experiencing the largest number of failed connections. This paper analyzed the common errors of SQL Server connection and provide some solution by making use of two kinds of connection way to connect SQL Server of client tools and the client program of the development of the users' own.

Key words: SQL Server; connection failed; error; solution

1 客戶端工具連接失敗

在使用SQL Server 2000自帶的客戶端工具(以企業管理器為例)連接SQL Server時,最常見的錯誤有如下一些:

1.1 SQL Server不存在或訪問被拒絕

1.1.1 錯誤描述

“SQL Server不存在或訪問被拒絕”錯誤,通常是最容易發生的(如圖1所示),因為錯誤發生的原因比較多,所以需要檢查的方面也比較多。

一般說來,有以下幾種可能性:1) 網絡連接問題;2) SQL Server服務器問題;3) 服務器端網絡配置問題;4) 客戶端網絡配置問題;5) 服務器安全設置問題。

1.1.2 解決方法及步驟

1)檢查網絡連接

a) ping服務器IP地址。首先先關閉服務器和客戶端的防火墻,這是為了排除防火墻軟件可能會屏蔽對ping,telnet等的響應。然后開始ping服務器IP地址,如果ping服務器IP地址不成功,說明物理連接有問題,這時候要檢查硬件設備,如網卡,HUB,路由器等。

b) ping服務器名稱。如果失敗則說明名字解析有問題,這時候要檢查Netbuis協議是否安裝;DNS服務是否正常。有時候客戶端和服務器不在同一個局域網里面,這時候很可能無法直接使用服務器名稱來標識該服務器,這時我們可以使用HOSTS文件來進行名字解析,具體的方法是:

a) 使用記事本打開HOSTS文件(一般情況下位于C:\\WINNT\\system32\\drivers\\etc)。

b) 添加一條IP地址與服務器名稱的對應記錄,如:172.168.21.199 myserver

其次,使用telnet命令檢查SQL Server服務器工作狀態。如果命令執行成功,可以看到屏幕一閃之后光標在左上角不停閃動,這說明SQL Server服務器工作正常,并且正在監聽1433端口的TCP/IP連接;如果命令返回“無法打開連接”的錯誤信息,則說明服務器沒有啟動SQL Server服務,也可能服務器端沒啟用TCP/IP協議,或者服務器沒有在SQL Server默認的端口1433上監聽。

2) 檢查服務器、客戶端網絡配置

服務器檢查是否啟用了命名管道;是否啟用了TCP/IP 協議等等。我們可以利用SQL Server自帶的服務器網絡使用工具來進行檢查。

單擊:程序->Microsoft SQL Server服務器網絡實用工具;打開該工具后(如圖2所示),在“常規”中可以看到服務器啟用了哪些協議,默認我們啟用命名管道以及TCP/IP協議。選中TCP/IP協議,選擇“屬性”,彈出一對話框(如圖3所示)。我們可以來檢查SQL Server服務默認端口的設置。一般而言,我們使用SQL Server默認的1433端口。如果選中“隱藏服務器”,則意味著客戶端無法通過枚舉服務器來看到這臺服務器,起到了保護的作用,但不影響連接。

3) 檢查客戶端的網絡配置

我們同樣可以利用SQL Server自帶的客戶端網絡實用工具來進行檢查,所不同的是這次是在客戶端來運行這個工具。單擊程序→ Microsoft SQL Server客戶端網絡使用工具;打開該工具后(如圖4所示),在“常規”項中,可以看到客戶端啟用了哪些協議。同樣,我們需要啟用命名管道以及TCP/IP協議。點擊TCP/IP協議,選擇“屬性”,可以檢查客戶端默認連接端口的設置,該端口必須與服務器一致。

4) 檢查服務器的安全設置

確認啟用了guest賬戶,并且確認允許通過guest帳戶從網絡訪問該服務器。

通過以上幾個方面的檢查,基本上可以排除第一種錯誤。

1.2 用戶xxx登錄失敗

1.2.1 錯誤描述

該錯誤產生的原因是由于SQL Server使用了“僅Windows”的身份驗證方式,因此用戶無法使用SQL Server的登錄帳戶(如sa)進行連接(如圖5所示)。

1.2.2 解決方法及步驟

1)在服務器端使用企業管理器,并且選擇“使用Windows身份驗證”連接上SQL Server;2)展開“SQL Server組”,鼠標右鍵點擊SQL Server服務器的名稱,選擇“屬性”,再選擇“安全性”選項卡;3)在“身份驗證”下,選擇“SQL Server和Windows”;4)重新啟動SQL Server服務。

在以上解決方法中,如果在第1步中使用“使用Windows 身份驗證”連接SQL Server失敗,那就通過修改注冊表來解決此問題:

1)點擊“開始”→“運行”,輸入regedit,回車進入注冊表編輯器;2)依次展開注冊表項,瀏覽到以下注冊表:[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MSSQLServer\\MSSQLServer];3)在屏幕右方找到名稱“LoginMode”,雙擊編輯雙字節值;4)將原值從1改為2,點擊“確定”;5)關閉注冊表編輯器;6)重新啟動SQL Server服務。

此時,用戶可以成功地使用sa在企業管理器中新建SQL Server注冊,但是仍然無法使用Windows身份驗證模式來連接SQL Server。這是因為在SQL Server中有兩個缺省的登錄帳戶:BUILTIN\\Administrators和<機器名>\\Administrator 被刪除。

要恢復這兩個帳戶,可以使用以下的方法:

1)打開企業管理器,展開服務器組,然后展開服務器;2)展開“安全性”,右擊“登錄”,然后單擊“新建登錄”;3)在“名稱”框中,輸入BUILTIN\\Administrators;4)在“服務器角色”選項卡中,選擇“System Administrators” ;5)點擊“確定”退出;6)使用同樣方法添加<機器名>\\Administrator 登錄。

說明:以下注冊表鍵:

HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MSSQLServer\\MSSQLServer\\LoginMode的值決定了SQL Server將采取何種身份驗證模式。其中1表示使用“Windows 身份驗證”模式;2表示使用混合模式(Windows 身份驗證和SQL Server身份驗證)。

1.3 提示連接超時

1.3.1 錯誤描述

如果遇到這個錯誤(如圖6所示),一般而言表示客戶端已經找到了這臺服務器,并且可以進行連接,不過是由于連接的時間大于允許的時間而導致出錯。這種情況一般會發生在當用戶在Internet上運行企業管理器來注冊另外一臺同樣在Internet上的服務器,并且是慢速連接時,有可能會導致以上的超時錯誤。有些情況下,由于局域網的網絡問題,也會導致這樣的錯誤。

1.3.2 解決方法及步驟

要解決這樣的錯誤,可以修改客戶端的連接超時設置。默認情況下,通過企業管理器注冊另外一臺SQL Server的超時設置是4秒,而查詢分析器是15秒(這也是為什么在企業管理器里發生錯誤的可能性比較大的原因)。

企業管理器中的設置:

1)在企業管理器中,選擇菜單上的“工具”,再選擇“選項”;

2)在彈出的“SQL Server企業管理器屬性”窗口中,點擊“高級”選項卡;

3)在“連接設置”下的“登錄超時(秒)”右邊的框中輸入一個比較大的數字,如20。

查詢分析器中也可以在同樣位置進行設置。

2 應用程序連接失敗

2.1 錯誤描述

在應用程序中我們也會遇到類似的錯誤信息,例如:

1)Microsoft OLE DB Provider for SQL Server (0x80004005)

[DBNETLIB][ConnectionOpen (Connect()).]Specified SQL server not found.

2)Microsoft OLE DB Provider for SQL Server (0x80004005)

用戶 'sa' 登錄失敗。原因:未與信任SQL Server連接相關聯。

3)Microsoft OLE DB Provider for ODBC Drivers錯誤'80004005'。

[Microsoft][ODBC SQL Server Driver]超時已過期。

2.2 解決方法分析與步驟

首先,讓我們來詳細看以下的示意圖(如圖7所示)來了解一下使用ODBC和使用OLE DB連接SQL Server有什么不同之處。

從圖7中,我們可以看出在實際使用中,應用程序創建和使用各種ADO對象,ADO對象框架調用享用的OLE DB提供者。為了訪問SQL Server數據庫,OLE DB提供了兩種不同的方法:用于SQL Server的OLE DB提供者以及用于ODBC的OLE DB提供者。這兩種不同的方法對應于兩種不同的連接字符串,標準的連接字符串寫法如下所示:

2.2.1 使用用于SQL Server的OLE DB提供者

1)使用SQL Server身份驗證:

oConn.Open \"Provider=sqloledb;\" \"Data Source=myServerName;\" _

\"Initial Catalog=myDatabaseName;\" \"User Id=myUsername;\" _

\"Password=myPassword\"

2)使用Windows身份驗證(信任連接):

oConn.Open \"Provider=sqloledb;\" \"Data Source=myServerName;\" _

\"Initial Catalog=myDatabaseName;\" \"Integrated Security=SSPI\"

2.2.2 使用用于 ODBC 的 OLE DB 提供者(不使用 ODBC 數據源)

1)使用 SQL Server 身份驗證:

oConn.Open \"Driver={SQL Server};\" \"Server=MyServerName;\"_

\"Database=myDatabaseName;\" \"Uid=myUsername;\" \"Pwd=myPassword\"

2)使用 Windows 身份驗證(信任連接):

oConn.Open \"Driver={SQL Server};\" \"Server=MyServerName;\" _

\"Database=myDatabaseName;\" \"Trusted_Connection=yes\"

2.2.3 使用用于 ODBC 的 OLE DB 提供者(使用 ODBC 數據源)

oConn.Open \"DSN=mySystemDSN;\" \"Uid=myUsername;\" \"Pwd=myPassword\"

如果遇到連接失敗的情況,我們只要按照客戶端工具連接失敗中所示的方法,結合程序中的連接字符串進行檢查,基本都能得到解決。另外,還有以下幾個要注意的地方:

1)配置 ODBC 數據源時,點擊“客戶端”配置選項可以讓我們指定連接使用的網絡庫、端口號等屬性(如圖8所示)。

2)如果遇到連接超時的錯誤,我們可以在程序中修改Connection對象的超時設置,再打開該連接。例如:

<%

Set Conn = Server.CreateObject(\"ADODB.Connection\")

DSNtest=\"DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase\"

Conn.Properties(\"Connect Timeout\") = 15 '以秒為單位

Conn.open DSNtest

%>

3)如果遇到查詢超時的錯誤,我們可以在程序中修改Recordset對象的超時設置,再打開結果集。例如:

Dim cn As New ADODB.Connection

Dim rs As ADODB.Recordset

. . .

cmd1 = txtQuery.Text

Set rs = New ADODB.Recordset

rs.Properties(\"Command Time Out\") = 300

'同樣以秒為單位,如果設置為 0 表示無限制

rs.Open cmd1, cn

rs.MoveFirst

3 結束語

該文針對大部分用戶在使用SQL Server過程中常見的連接失敗的錯誤,重點討論了在使用 SQL Server 客戶端工具以及用戶開發的應用程序兩種情況下,如何診斷并解決連接失敗的錯誤。看過本文以后,相信每一個讀者都會對 SQL Server 的連接工作原理、身份驗證方式以及應用程序開發等有一個較為全面而深入的了解。

參考文獻:

[1] 微軟公司.sql server自帶的幫助文檔“sql server Books online”[M/OL],2000, http://msdn.microsoft.com/zh-cn/default.aspx.

[2] 微軟公司.Microsoft SQL Server 2000 系統管理(英文影印版)[M].北京:北京大學出版社,2001.

[3] 微軟公司.微軟指定MCSE教材——Microsoft SQL Server2000數據庫設計與實現(影印版)[M].北京: 北京大學出版社, 2001.

[4] CSDN.SQL Server連接中的三個最常見錯誤[EB/OL].http://www.newasp.net/tech/data/4379.html.

[5] 微軟公司.Microsoft SQL Server 2000數據庫管理[M].北京: 北京希望電子出版社,2001.

[6] 求是科技.SQL Server2000數據庫管理與開發技術大全[M].北京:人民郵電出版社,2004.

主站蜘蛛池模板: 美女被躁出白浆视频播放| 日韩精品无码免费一区二区三区| 91九色国产在线| 日本一区二区不卡视频| 3D动漫精品啪啪一区二区下载| 色综合五月| 国模视频一区二区| 精品人妻无码区在线视频| 精品久久综合1区2区3区激情| 激情影院内射美女| 亚洲成网777777国产精品| 久久永久免费人妻精品| 亚洲性一区| 久久综合丝袜日本网| 中文字幕欧美日韩| 午夜a级毛片| 国内精品久久久久鸭| 在线视频一区二区三区不卡| 国产91丝袜| 一区二区三区精品视频在线观看| 成人综合网址| 中国美女**毛片录像在线 | 亚洲精品天堂在线观看| 又大又硬又爽免费视频| 亚洲欧美一区在线| 精品国产美女福到在线不卡f| 尤物在线观看乱码| 亚洲午夜福利在线| 午夜视频在线观看免费网站| 日韩福利视频导航| 国产视频久久久久| 日本午夜影院| 777午夜精品电影免费看| 日韩福利在线视频| 亚洲成a人片77777在线播放| 2018日日摸夜夜添狠狠躁| av在线手机播放| 国产美女在线观看| 亚洲福利视频一区二区| 欧美精品成人一区二区视频一| 香蕉色综合| 成人国产一区二区三区| 国产成人毛片| 国产网站在线看| 爆乳熟妇一区二区三区| 99福利视频导航| 奇米影视狠狠精品7777| 亚洲高清在线播放| 亚洲人成在线精品| 天堂成人av| 亚洲三级影院| 亚洲第一色网站| 91视频日本| 高清乱码精品福利在线视频| 久久综合九色综合97婷婷| 伊人91在线| 播五月综合| 亚洲第一成年免费网站| 国产精品精品视频| 亚洲天堂网视频| 爆操波多野结衣| 成人国内精品久久久久影院| 欧美不卡二区| 国产成人欧美| 婷婷丁香色| 最新国产麻豆aⅴ精品无| 精品国产香蕉在线播出| 久久伊人色| 日本人真淫视频一区二区三区| 日韩无码视频播放| 激情综合激情| 亚洲AV电影不卡在线观看| 精品久久久久成人码免费动漫| 国内熟女少妇一线天| 国产美女在线观看| 成人国产免费| 不卡无码网| 亚洲日韩Av中文字幕无码| 毛片在线播放网址| 成人亚洲天堂| 欧美精品xx| 国产精品xxx|