≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > SQL Server

SQL Server 连接失败错误故障的分析与排除

人气:350 时间:2019-12-17

这篇文章主要为大家详细介绍了SQL Server 连接失败错误故障的分析与排除,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

一般而言,有两种连接sql server 的方式,一是利用 sql server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用 ODBC 或者OLE DB等连接 sql server。下面,我们将就这两种连接方式,具体谈谈如何来解决连接失败的问题。

  一、"sql server 不存在或访问被拒绝"
 

【图片暂缺】(WINDOWS平台上强大的数据库平台)连接失败错误故障的分析与排除(图一)" width="408" height="139" />
(图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端口。如果选中"隐藏服务器",则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接。
 
【图片暂缺】(WINDOWS平台上强大的数据库平台)连接失败错误故障的分析与排除(图二)" width="500" height="324" />
(图2)
【图片暂缺】(WINDOWS平台上强大的数据库平台)连接失败错误故障的分析与排除(图三)" width="441" height="192" />
(图3)

  接下来我们要到客户端检查客户端的网络配置。我们同样可以利用 sql server 自带的客户端网络使用工具来进行检查,所不同的是这次是在客户端来运行这个工具。单击:程序-> Microsoft sql server 客户端网络使用工具打开该工具后,在"常规"项中,可以看到客户端启用了哪些协议。同样,我们需要启用命名管道以及 TCP/IP 协议。点击 TCP/IP 协议,选择"属性",可以检查客户端默认连接端口的设置,该端口必须与服务器一致。
 
【图片暂缺】(WINDOWS平台上强大的数据库平台)连接失败错误故障的分析与排除(图四)" width="480" height="340" />
(图4)

  通过以上几个方面的检查,基本上可以排除第一种错误。

 

  二、"无法连接到服务器,用户xxx登陆失败"
 

【图片暂缺】(WINDOWS平台上强大的数据库平台)连接失败错误故障的分析与排除(图五)" width="408" height="126" />
(图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 身份验证)。

  三、提示连接超时
 
【图片暂缺】(WINDOWS平台上强大的数据库平台)连接失败错误故障的分析与排除(图六)" width="408" height="126" />
(图6)

  如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错。这种情况比较少见,一般发生在当用户在Internet上运行企业管理器来注册另外一台同样在Internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误。有些情况下,由于局域网的网络问题,也会导致这样的错误。

  要解决这样的错误,可以修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台sql server的超时设置是 4 秒,而查询分析器是 15 秒。

  具体步骤为:

  企业管理器中的设置:

  1、在企业管理器中,选择菜单上的"工具",再选择"选项";

  2、在弹出的"sql server企业管理器属性"窗口中,点击"高级"选项卡;

  3、在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 30。

  查询分析器中的设置:

  单击“工具”->"选项"->"连接"; 将登录超时设置为一个较大的数字,连接超时改为0。

  四、应用程序连接失败

  以上的三种错误信息都是发生在 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
. . .

  五、小结

  本文针对大部分用户在使用 sql server 过程中常见的连接失败的错误,重点讨论了在使用 sql server 客户端工具以及用户开发的应用程序两种情况下,如何诊断并解决连接失败的错误。看过本文以后,相信每一个读者都会对 sql server 的连接工作原理、身份验证方式以及应用程序开发等有一个较为全面而深入的了解。

本文来自:http://www.q1010.com/179/8101-0.html

注:关于SQL Server 连接失败错误故障的分析与排除的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:SQL SERVER

您可能感兴趣的文章

  • win2003安装sqlserver 2000提示无法验证产品密钥解析
  • SqlServer 基础知识 数据检索、查询排序语句
  • SQL Server利用sys.sysprocesses检查SqlServer的阻塞和死锁
  • SQLServer 全文检索(full-text)语法
  • SQL Server 2000 升级到 SQLServer 2008 性能之需要注意的地方之一
  • SQL Server 一次性压缩Sqlserver2005中所有库日志的存储过程
  • SQLServer 跨库查询实现方法
  • SQL Server 数据库主键的生成方式小结(sqlserver,mysql)
  • SQL Server使用cmd命令行窗口操作SqlServer的方法
  • SQLServer 2005 实现数据库同步备份 过程-结果-分析
上一篇:SQL Server 一些有用的sql语句用法
下一篇:SQL Server 聚集索引和非聚集索引的区别分析
热门文章
  • SQL Server SQL获取第一条记录的方法
  • SQL Server出现System.OutOfMemoryException异常的解决方法
  • SQL Server的 update from 语句的简单示例
  • SQL Server 数据库备份方法菜鸟教程
  • SQL Server 多表关联时在where语句中慎用trim()方法
  • SQL Server数据类型及长度限制详细说明
  • mybaits非配置原因,导致SqlSession was not registered for synchronization异常解析
  • SQL Server 收缩后对数据库的使用有影响吗?
  • SQL Server 格式导致的Excel导入sql出现异常的解决方法
  • SQL Server 连接服务器出现错误 7391的解决方法
  • 最新文章
    • SQL Server存储过程基本语法的简单示例
    • sql查询时增加自动编号和分页的简单示例
    • sql轻松应付百万数据的高效数据分页存储过程的简单示例
    • sql获取一条数据中所有字段的名称和值的实现方法
    • sql分割函数的简单示例
    • SQL Server异常捕获的简单示例
    • SQL SERVER回滚恢复误操作数据的实现方法
    • SQL Server函数或存储过程中抛出异常的实现方法
    • SQL Server创建数据库的完整代码
    • SQL Server创建数据库的命令用法示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。