小结SQL Server毗连失败错误的办理
在行使 SQL Server 的进程中,用户碰着的最多的题目莫过于毗连失败了。一样平常而言,有以下两种毗连 SQL Server 的方法: 一是操作 SQL Server 自带的客户端器材,如企业打点器、查询说明器、事宜探查器等。 二是操浸染户本身开拓的客户端措施,如ASP 剧本、VB措施等,客户端措施中又是操作 ODBC 可能 OLE DB 等毗连 SQL Server。下面,我们迁就这两种毗连方法,详细谈谈怎样来办理毗连失败的题目。 一、客户端器材毗连失败 1、SQL Server 不存在或会见被拒绝 第一个错误"SQL Server 不存在或会见被拒绝"凡是是最伟大的,错误产生的缘故起因较量多,必要搜查的方面也较量多。一样平常说来,有以下几种也许性: 1、SQL Server名称或IP地点拼写有误; 2、处事器端收集设置有误; 3、客户端收集设置有误。 要办理这个题目,我们一样平常要遵循以下的步调来一步步找出导致错误的缘故起因。 起首,搜查收集物理毗连: ping <处事器IP地点> ping <处事器名称> 假如 ping <处事器IP地点> 失败,声名物理毗连有题目,这时辰要搜查硬件装备,如网卡、HUB、路由器等。尚有一种也许是因为客户端和处事器之间安装有防火墙软件造成的,好比 ISA Server。 防火墙软件也许会屏障对 ping、telnet 等的相应,因此在搜查毗连题目的时辰,我们要先把防火墙软件暂且封锁,可能打开全部被关闭的端口。 假如ping <处事器IP地点> 乐成而 ping <处事器名称> 失败,则声名名字理会有题目,这时辰要搜查 DNS 处事是否正常。 偶然辰客户端和处事器不在统一个局域网内里,这时辰很也许无法直接行使处事器名称来标识该处事器,这时辰我们可以行使HOSTS文件来举办名字理会,详细的要领是: 1、行使记事本打开HOSTS文件(一样平常环境下位于C:WINNTsystem32driversetc)。 2、添加一条IP地点与处事器名称的对应记录,如: 172.168.10.24 myserver 也可以在 SQL Server 的客户端收集适用器材内里举办设置,后头会有具体声名。 其次,行使 telnet 呼吁搜查SQL Server处事器事变状态: telnet <处事器IP地点> 1433 假如呼吁执行乐成,可以看到屏幕一闪之后光标在左上角不断闪动,这声名 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 自带的客户端收集行使器材来举办搜查,所差异的是这次是在客户端来运行这个器材。 点击:措施 -> Microsoft SQL Server -> 客户端收集行使器材 从这里我们可以看到客户端启用了哪些协议。一样平常而言,我们同样必要启用定名管道以及 TCP/IP 协议。 点击 TCP/IP 协议,选择"属性",可以搜查客户端默认毗连端口的配置,该端口必需与处事器同等。 单击"别名"选项卡,还可觉得处事器设置别名。处事器的别名是用来毗连的名称,毗连参数中的处事器是真正的处事器名称,两者可以沟通或差异。我们可以行使myserver来取代真正的处事器名称sql2kcn-02,而且行使收集库 Named Pipes。别名的配置与行使HOSTS文件有相似之处。 通过以上几个方面的搜查,错误 1 产生的缘故起因根基上可以被解除。下面我们再具体描写怎样来办理错误 2。 当用户实行在查询说明器内里行使sa来毗连SQL Server,可能在企业打点器内里行使sa来新建一个SQL Server注册时,常常会碰着如图 2 所示的错误信息。 该错误发生的缘故起因是因为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 失败,那么我们将碰着一个两难的田地:起首,处事器只应承了 Windows 的身份验证;其次,纵然行使了 Windows 身份验证如故无法毗连上处事器。 这种气象被形象地称之为"本身把本身锁在了门外",由于无论用何种方法,用户均无法行使举办毗连。现实上,我们可以通过修改一个注册表键值来将身份验证方法改为 SQL Server 和 Windows 殽杂验证,步调如下所示: 1、点击"开始"-"运行",输入regedit,回车进入注册表编辑器; 2、依次睁开注册表项,赏识到以下注册表键: [HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServer] 3、在屏幕右方找到名称"LoginMode",双击编辑双字节值; 4、将原值从1改为2,点击"确定"; 5、封锁注册表编辑器; 6、从头启动SQL Server处事。 此时,用户可以乐成地行使sa在企业打点器中新建SQL Server注册,可是如故无法行使Windows身份验证模式来毗连SQL Server。这是由于在 SQL Server 中有两个缺省的登录帐户:BUILTINAdministrators 以及 <呆板名>Administrator 被删除。要规复这两个帐户,可以行使以下的要领: 1、打开企业打点器,睁开处事器组,然后睁开处事器; 2、睁开"安详性",右击"登录",然后单击"新建登录"; 3、在"名称"框中,输入 BUILTINAdministrators; 4、在"处事器脚色"选项卡中,选择"System Administrators" ; 5、点击"确定"退出; 6、行使同样要领添加 <呆板名>Administrator 登录。 以下注册表键 HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerLoginMode 值抉择了SQL Server将采纳何种身份验证模式。该值为1,暗示行使Windows 身份验证模式;该值为2,暗示行使殽杂模式(Windows 身份验证和 SQL Server 身份验证)。 看完怎样办理前两个错误的要领之后,让我们来看一下第三个错误。 假如碰着第三个错误,一样平常而言暗示客户端已经找到了这台处事器,而且可以举办毗连,不外是因为毗连的时刻大于应承的时刻而导致堕落。这种环境一样平常会产生在当用户在Internet上运行企业打点器来注册其它一台同样在Internet上的处事器,而且是慢速毗连时,有也许会导致以上的超时错误。有些环境下,因为局域网的收集题目,也会导致这样的错误。 要办理这样的错误,可以修改客户端的毗连超时配置。默认环境下,通过企业打点器注册其它一台SQL Server的超时配置是 4 秒,而查询说明器是 15 秒(这也是为什么在企业打点器里产生错误的也许性较量大的缘故起因)。详细步调为: 1、在企业打点器中,选择菜单上的"器材",再选择"选项"; 2、在弹出的"SQL Server企业打点器属性"窗口中,点击"高级"选项卡; 3、在"毗连配置"下的"登录超时(秒)"右边的框中输入一个较量大的数字,如 20。 查询说明器中也可以在同样位置举办配置。 二、应用措施毗连失败 以上的三种错误信息都是产生在 SQL Server 自带的客户端器材中,在应用措施中我们也会碰着相同的错误信息,譬喻: Microsoft OLE DB Provider for SQL Server (0x80004005) Microsoft OLE DB Provider for SQL Server (0x80004005) Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'. 起首,让我们来具体看以下的表示图来相识一下行使 ODBC 和行使 OLE DB 毗连 SQL Server 有什么差异之处。 在现实行使中,应用措施建设和行使各类 ADO 工具,ADO 工具框架挪用享用的 OLE DB 提供者。 为了会见 SQL Server 数据库,OLE DB 提供了两种差异的要领:用于 SQL Server 的 OLE DB 提供者以及用于 ODBC 的 OLE DB 提供者。这两种差异的要领对应于两种差异的毗连字符串,尺度的毗连字符串写法如下所示: 1、行使用于 SQL Server 的 OLE DB 提供者: 行使 SQL Server 身份验证: oConn.Open "Provider=sqloledb;" & _ oConn.Open "Provider=sqloledb;" & _ 2、行使用于 ODBC 的 OLE DB 提供者(不行使 ODBC 数据源): 行使 SQL Server 身份验证: oConn.Open "Driver={SQL Server};" & _ 行使 Windows 身份验证(信赖毗连): oConn.Open "Driver={SQL Server};" & _ 3、行使用于 ODBC 的 OLE DB 提供者(行使 ODBC 数据源): oConn.Open "DSN=mySystemDSN;" & _ 假如碰着毗连失败的环境,我们只要凭证一中所示的要领,团结措施中的毗连字符串举办搜查,根基都能获得办理。其它,尚有以下几个要留意的处所: 1、设置 ODBC 数据源时,点击"客户端"设置选项可以让我们指定毗连行使的收集库、端标语等属性。 2、假如碰着毗连超时的错误,我们可以在措施中修改 Connection 工具的超时配置,再打开该毗连。譬喻: <%Set Conn = Server.CreateObject Dim cn As New ADODB.ConnectionDim rs As ADODB.Recordset. . . 本文中全部的测试可能示例均在 Windows 2000 Advanced Server + SQL Server 2000 企业版上通过。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |