程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQLServer 銜接掉敗毛病毛病的剖析與消除

SQLServer 銜接掉敗毛病毛病的剖析與消除

編輯:MSSQL

SQLServer 銜接掉敗毛病毛病的剖析與消除。本站提示廣大學習愛好者:(SQLServer 銜接掉敗毛病毛病的剖析與消除)文章只能為提供參考,不一定能成為您想要的結果。以下是SQLServer 銜接掉敗毛病毛病的剖析與消除正文


普通而言,有兩種銜接sql server 的方法,一是應用 sql server 自帶的客戶端對象,如企業治理器、查詢剖析器、事務探查器等;二是應用用戶本身開辟的客戶端法式,如ASP 劇本、VB法式等,客戶端法式中又是應用 ODBC 或許OLE DB等銜接 sql server。上面,我們遷就這兩種銜接方法,詳細談談若何來處理銜接掉敗的成績。

  1、"sql server 不存在或拜訪被謝絕"

sql server(WINDOWS平台上壯大的數據庫平台)銜接掉敗毛病毛病的剖析與消除(圖一)(圖1)
  "sql server 不存在或拜訪被謝絕"毛病,平日是最輕易產生的,由於毛病產生的緣由比擬多,所以須要檢討的方面也比擬多。

  普通說來,有以下幾種能夠性:

  1、收集銜接成績;

  2、sql server辦事器成績;

  3、辦事器端收集設置裝備擺設成績;

  4、客戶端收集設置裝備擺設成績。

  起首,我們檢討收集銜接:

  1、ping辦事器IP地址。起首先封閉辦事器和客戶真個防火牆,這是為了消除防火牆軟件能夠會屏障對 ping,telnet 等的呼應。然後開端ping辦事器IP地址,假如 ping辦事器IP地址不勝利,解釋物理銜接有成績,這時候候要檢討硬件裝備,如網卡,HUB,路由器等。

  2、ping辦事器稱號。假如掉敗則解釋名字解析有成績,這時候候要檢討Netbuis協定能否裝置、;DNS 辦事能否正常。
其次,應用 telnet 敕令檢討sql server辦事器任務狀況。假如敕令履行勝利,可以看到屏幕一閃以後光標在左上角一直明滅,這解釋 sql server 辦事器任務正常,而且正在監聽1433端口的 TCP/IP 銜接;假如敕令前往"沒法翻開銜接"的毛病信息,則解釋辦事器沒有啟動 sql server 辦事,也能夠辦事器端沒啟用 TCP/IP 協定,或許辦事器沒有在 sql server 默許的端口1433上監聽。

  最初,我們要檢討辦事器、客戶端收集設置裝備擺設。辦事器檢討能否啟用了定名管道;能否啟用了 TCP/IP 協定等等。我們可以應用 sql server 自帶的辦事器收集應用對象來停止檢討。

  單擊:法式-> Microsoft sql server 辦事器收集應用對象;翻開該對象後,在"慣例"中可以看到辦事器啟用了哪些協定,默許我們啟用定名管道和 TCP/IP 協定。點中 TCP/IP 協定,選擇"屬性",我們可以來檢討 SQK Server 辦事默許端口的設置。普通而言,我們應用 sql server 默許的1433端口。假如選中"隱蔽辦事器",則意味著客戶端沒法經由過程列舉辦事器來看到這台辦事器,起到了掩護的感化,但不影響銜接。

sql server(WINDOWS平台上壯大的數據庫平台)銜接掉敗毛病毛病的剖析與消除(圖二)(圖2)
sql server(WINDOWS平台上壯大的數據庫平台)銜接掉敗毛病毛病的剖析與消除(圖三)(圖3)
  接上去我們要到客戶端檢討客戶真個收集設置裝備擺設。我們異樣可以應用 sql server 自帶的客戶端收集應用對象來停止檢討,所分歧的是此次是在客戶端來運轉這個對象。單擊:法式-> Microsoft sql server 客戶端收集應用對象翻開該對象後,在"慣例"項中,可以看到客戶端啟用了哪些協定。異樣,我們須要啟用定名管道和 TCP/IP 協定。點擊 TCP/IP 協定,選擇"屬性",可以檢討客戶端默許銜接端口的設置,該端口必需與辦事器分歧。

sql server(WINDOWS平台上壯大的數據庫平台)銜接掉敗毛病毛病的剖析與消除(圖四)(圖4)
  經由過程以上幾個方面的檢討,根本上可以消除第一種毛病。

  2、"沒法銜接到辦事器,用戶xxx上岸掉敗"

sql server(WINDOWS平台上壯大的數據庫平台)銜接掉敗毛病毛病的剖析與消除(圖五)(圖5)
  該毛病發生的緣由是因為sql server應用了"僅 Windows"的身份驗證方法,是以用戶沒法應用sql server的登錄帳戶(如 sa )停止銜接。處理辦法以下所示:

  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 身份驗證)。

  3、提醒銜接超時

sql server(WINDOWS平台上壯大的數據庫平台)銜接掉敗毛病毛病的剖析與消除(圖六)(圖6)
  假如碰到第三個毛病,普通而言表現客戶端曾經找到了這台辦事器,而且可以停止銜接,不外是因為銜接的時光年夜於許可的時光而招致失足。這類情形比擬少見,普通產生在當用戶在Internet上運轉企業治理器來注冊別的一台異樣在Internet上的辦事器,而且是慢速銜接時,有能夠會招致以上的超時毛病。有些情形下,因為局域網的收集成績,也會招致如許的毛病。

  要處理如許的毛病,可以修正客戶真個銜接超時設置。默許情形下,經由過程企業治理器注冊別的一台sql server的超時設置是 4 秒,而查詢剖析器是 15 秒。

  詳細步調為:

  企業治理器中的設置:

  1、在企業治理器中,選擇菜單上的"對象",再選擇"選項";

  2、在彈出的"sql server企業治理器屬性"窗口中,點擊"高等"選項卡;

  3、在"銜接設置"下的"登錄超時(秒)"左邊的框中輸出一個比擬年夜的數字,如 30。

  查詢剖析器中的設置:

  單擊“對象”->"選項"->"銜接"; 將登錄超時設置為一個較年夜的數字,銜接超時改成0。

  4、運用法式銜接掉敗

  以上的三種毛病信息都是產生在 sql server 自帶的客戶端對象中,在運用法式中我們也會碰到相似的毛病信息,例如:

Microsoft OLE DB Provider for sql server (0x80004005)
[DBNETLIB][ConnectionOpen (Connect()).]Specified sql server not found.
Microsoft OLE DB Provider for sql server (0x80004005)
  用戶 'sa' 登錄掉敗。緣由: 未與信賴 sql server 銜接相干聯。

Microsoft OLE DB Provider for ODBC Drivers 毛病 '80004005'.
[Microsoft][ODBC sql server Driver]超時已過時.
  假如碰到銜接超時的毛病,我們可以在法式中修正 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
%>
  假如碰到查詢超時的毛病,我們可以在法式中修正 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
. . .
  5、小結

  本文針對年夜部門用戶在應用 sql server 進程中罕見的銜接掉敗的毛病,重點評論辯論了在應用 sql server 客戶端對象和用戶開辟的運用法式兩種情形下,若何診斷並處理銜接掉敗的毛病。看過本文今後,信任每個讀者都邑對 sql server 的銜接任務道理、身份驗證方法和運用法式開辟等有一個較為周全而深刻的懂得。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved