SQL Server连接失败错误及解决第1/5页

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

  一、客户端工具连接失败

  在使用 SQL Server 自带的客户端工具(以企业管理器为例)连接 SQL Server时,最常见的错误有如下一些:

  1、SQL Server 不存在或访问被拒绝

  ConnectionOpen (Connect())

2、用户'sa'登录失败。原因:未与信任 SQL Server 连接相关联。

3、超时已过期。

下面我们依次介绍如何来解决这三个最常见的连接错误。

  第一个错误"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:\WINNT\system32\drivers\etc).

  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上监听。

当前1/5页 12345下一页阅读全文

(0)

相关推荐

  • SQL Server连接失败错误及解决第1/5页

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

  • php Sql Server连接失败问题及解决办法

    1.确认数据库服务开启状态 2.php.ini配置中的扩展打开 3.检查数据库相关的版本 (1)Sql2000此时要检查php目录和apache的bin目录下的ntwdblib.dll文件的版本是否符合,右键点击ntwdblib.dll看文件属性就可以看见版本.Sql2000对应的ntwdblib.dll应该是7.0的版本 (2)Sql2005的时候ntwdblib.dll对应的是8.0的版本. 如果版本不对可能出现链接失败,仔细检查即可. 本人在链接sql2005的时候遇到的问题,经过仔细排查

  • SQL SERVER 2000 9003错误的解决方法(只适用于SQL2000)

    关于SQLSERVER 9003错误解决方法 只适用于SQL2000: "无法打开新数据库 'POS'.CREATE DATABASE 中止. (Microsoft SQL Server,错误: 9003)" 看是9003错误,就想到可能是由于日志文件的原因,再看数据库文件可能损坏,于是想到dbcc checkdb指令. 方法如下: 1.我们使用默认方式建立一个供恢复使用的数据库(如pos).可以在SQL Server Enterprise Manager里面建立. 2.停掉数据库服务

  • SQL Server 连接到服务器 错误233的解决办法

    我的SQL Server2005 一直正常使用但昨天出现了错误,如图. 经过上网查,网上说的办法试了好多都没有解决这个问题.在经过多次的摸索后终于搞定了,答案很简单,是sql身份验证 "sa"账号 登录密码的问题. 但是前提是你必须得保证你的sql server 的sql 身份验证可以用,所以在这里我们就先给大家讲述下怎样使sql身份验证可以启用 (sql server身份验证可以用的直接跳过这一步). 首先用windows身份验证登录,windows身份验证不可以登录的请看我前面博客

  • SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法

    一.错误提示 : 该作业失败. 无法确定所有者 WIN-3TH1KNIT12D\Administrator (拥有作业 Database_Backup.step1)是否有服务器访问权限 (原因: 无法获取有关 Windows NT 组/用户 'WIN-3TH1KNIT12D\Administrator' 的信息,错误代码 0x534. [SQLSTATE 42000] (错误 15404)). 二.说明: 更改作业计划的所有者,不是数据库所有者 三.解决方法: 下面是其他网友的补充方法 下午准备

  • sql server连接不上怎么办 SQL Server2008R无法登录的解决方案(1814\18456)

    早上一开电脑,黑屏幕跑一些修复系统的代码....进入系统后,sql server连接不上 正文 原因:sql server的服务自动关闭了,并且启动失败 windows日志信息:传递给数据库 'master' 中的日志扫描操作的日志扫描号 (286:456:1) 无效.此错误可能指示数据损坏,或者日志文件(.ldf)与数据文件(.mdf)不匹配.如果此错误是在复制期间出现的,请重新创建发布.否则,如果该问题导致启动期间出错,请从备份还原. 很明显是sqlserver的系统文件出了问题,先百度,网

  • SQLServer 连接失败错误故障的分析与排除

    一般而言,有两种连接sql server 的方式,一是利用 sql server 自带的客户端工具,如企业管理器.查询分析器.事务探查器等:二是利用用户自己开发的客户端程序,如ASP 脚本.VB程序等,客户端程序中又是利用 ODBC 或者OLE DB等连接 sql server.下面,我们将就这两种连接方式,具体谈谈如何来解决连接失败的问题. 一."sql server 不存在或访问被拒绝" (WINDOWS平台上强大的数据库平台)连接失败错误故障的分析与排除(图一)" wi

  • SQL Server连接中三个常见的错误分析

    SQL Server连接中三个常见的错误分析 一."SQL Server 不存在或访问被拒绝"  这个是最复杂的,错误发生的原因比较多,需要检查的方面也比较多. 一般说来,有以下几种可能性: 1.SQL Server名称或IP地址拼写有误 2.服务器端网络配置有误 3.客户端网络配置有误 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因. 首先,检查网络物理连接  ping <服务器IP地址/服务器名称> 如果 ping <服务器IP地址> 不

  • 恢复sql server 2000误删数据的解决办法

    今天不小心把客户那边的数据库中删了一千多条数据,而且之前又没有备份,真的是很郁闷,后来在网上找到一工具,用起来挺方便,让我躲过一劫. 首先来看一下界面: 输入服务器地址,用户名及密码后点Connect,进入到下面的界面: 在这里选择要恢复数据的数据库,选择Use On-line Log(如果你又备份文件的话就不需要用这个工具了,直接用SQL搞定了).然后点Attach,进入下面的界面: 可以看到左边菜单中有很多功能,我们要恢复数据,首先要查看日志,找出我们误操作的那些日志记录,点Browse下的

  • SQL Server连接查询的实用教程

    前沿小补充 例3.48 查询平均成绩大于等于80分的学生学号和平均成绩 SELECT Sno,AVG(Grade) FROM SC WHERE AVG(Grade)>=80 GROUP BY Sno; SELECT * FROM SC; 此时发现: 这是因为WHERE子句中是不能用聚集函数作为条件表达式的,正确的查询语句应该是: SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno HAVING AVG(Grade)>=80; SELECT * FROM SC;

随机推荐