例如企业
管理器、
查询分析器、事务管理器等。二是在客户端
程序中使用
用户开发的客户端程序,如asp
脚本、VB程序等,SQL Server也通过ODBC或OLE DB进行
连接,接下来我们将讨论如何
解决这两个连接上的连接失败问题。
1。SQL Server不存在或拒绝访问。
U3000 U3000
(图1)
SQL Server不存在或访问被拒绝
错误通常是最容易发生的,因为错误的
原因很多,因此需要
检查更多的内容。
一般来说,有几种可能性:
1。
网络连接问题;
2、SQLServer
服务器问题;
三.服务器端网络
配置问题;
4。客户端网络配置问题。
首先,我们检查
网络连接:
1,ping服务器IP
地址。首先
关闭服务器和客户端防火墙,这是为了排除可能屏蔽对平、telnet等的响应的防火墙软件。然后
启动ping服务器IP地址。如果ping服务器的IP地址不成功,则表示存在物理连接问题。这时,我们必须检查
硬件设备,如网卡、集线器、
路由器等。
2、ping服务器名称。如果失败表明,
域名解析是有问题的,它是时间来检查是否
安装了netbuis协议和DNS服务是否正常。
其次,使用telnet
命令来查看SQL Server服务器的
工作状态。如果命令
执行成功,可以在
屏幕的左上角看到闪光灯
闪烁的光标,说明SQL Server服务器的工作,并在端口1433侦听TCP / IP连接;如果一个命令返回无法打开连接的错误信息,那么有没有启动SQL Server服务的服务器,服务器可能不
支持TCP / IP协议在SQL服务器,或者服务器没有
默认端口1433监听。
最后,我们要检查服务器和客户机网络配置。服务器检查是否
启用了命名管道;是否启用了TCP/IP协议等。我们可以使用SQLServer服务器网络使用这些
工具检查。
点击微软SQL服务器程序:->服务器网络工具;打开工具,在通用可以看到启用服务器协议,我们默认的命名管道和TCP / IP协议,TCP / IP协议中,选择通用
属性,我们使用默认的1433端口SQL服务器。如果你选择隐藏的服务器,这意味着客户端无法通过枚举服务器到服务器,它起到了
保护作用,但这并不
影响连接。
U3000 U3000
(图2)
U3000 U3000
(图3)
接下来我们将去客户端检查客户机的网络配置,我们还可以使用SQL Server自己的客户机网络工具检查。不同的是在客户端运行的工具。点击:SQL ->微软程序的服务器和客户端网络使用工具,打开该工具,在将军以同样的方式,我们需要启用命名管道和TCP / IP协议,TCP / IP协议,单击并选择属性查看客户端的默认连接端口的
设置,必须与服务器保持一致。
U3000 U3000
(图4)
通过以上几个方面的检验,第一类误差基本上可以消除。
1.2:
无法连接到服务器,用户xxx登陆失败。
U3000 U3000
(图5)
造成这种错误的原因是SQL Server使用的是只有Windows的身份验证
模式:
1。在服务器端使用企业管理器,并选择使用Windows身份验证将SQL Server连接到服务器。
2,展开SQL服务器组
三.在身份验证下
4,
重新启动SQL Server服务。
在上面的解决方案中,如果我们在第一步使用Windows身份验证连接SQL Server,就可以通过
修改注册表来解决这个问题。
1,单击开始
运行 2、打开注册表项依次
浏览到以下注册表:{ hkey_local_machine 软件微软 MSSQLServer MSSQLServer };
三.找到名为loginmode 在屏幕和
双击编辑双字节值的右边。
4,该值将从1更改为2,单击确定;
5,关闭注册表编辑器;
6,重新启动SQL Server服务。
此时,用户可以成功地使用SA在企业管理器中
创建新的SQL Server注册,但仍然不能使用Windows身份验证模式连接SQL Server,这是因为SQL Server中有两个默认的所有者:
内置
管理员 管理员已
删除。
要还原这两个帐户,可以使用以下
方法:
1,打开企业管理器,展开服务器组,然后展开服务器;
2,展开安全
3,在名称框中,
输入内置管理员;
4,在服务器角色
选项卡中,选择
系统管理员;
5,单击
确认退出;
6,使用相同的方法添加管理员
登录。
描述:
以下注册表键:
对hkey_local_machine 软件微软 MSSQLServer loginmode MSSQLServer的价值决定了SQL Server将身份验证模式。
1,表示使用Windows身份验证模式;
2,表示使用混合模式(Windows身份验证和SQLServer身份验证)。
1.3:
提示连接超时
U3000 U3000
(图6)
如果有第三的误差,一般来说,客户已经
发现服务器可以连接,但这是因为连接时间大于允许的时间。这种
情况比较少见,通常发生在用户运行在互联网上的企业经理,登记在同一网络的另一台服务器,和缓慢的连接,可以导致上述超时错误。在某些情况下,
局域网的网络问题也会导致这样的错误。
为了解决这样的错误,可以修改客户端的连接超时设置。默认情况下,通过企业管理器注册的另一个SQL Server的超时设置为4秒,查询分析器为15秒。
具体
步骤如下:
在企业管理器中设置:
1。在企业管理器中,在菜单中选择工具,然后选择选项。
2,在弹出的SQL Server企业管理器属性窗口中,单击高级
选项卡;
三.在登录超时(秒)下的右框中输入一个较大的数字
查询解析器中的设置:
单击工具>选项>连接;将登录超时设置为更大的数字,连接超时设置为0。
二,
应用程序连接失败
以上三种错误信息发生在SQLServer自己的客户机工具中。在应用程序中,我们还将遇到类似的错误信息,例如:
微软OLE DB Provider for SQL Server(这个问题很经典)
{ dbnetlib } { ConnectionOpen(连接())指定的SQL服务器不存在。}。
微软OLE DB Provider for SQL Server(这个问题很经典)
的user'sa'login失败。原因:不信任SQL Server连接相关。
微软的OLE DB提供程序的ODBC
驱动程序错误'80004005。
{ {微软的SQL Server驱动程序超时已经过期。
如果遇到连接超时错误,我们可以修改程序中连接对象的超时设置,然后打开连接:
< %
设置conn = server.createobject(数据连接)
dsntest =司机= { SQL Server };服务器%ServerName;UID =用户;pwd=
密码;数据库=名称
康涅狄格州的性质(连接超时)= 15秒
conn.open dsntest
%。
如果遇到一个查询超时错误,我们可以修改超时程序中的记录集对象的设置,然后打开结果集。例如:
昏暗的CN作为新ADODB.连接
记录集Recordset未定义呢。
..
cmd1 = txtquery。
文本 集=新的数据集。
RS
性能(命令的时间)= 300
也在秒,如果设置为0是不受限制的。
的。打开CMD1,CN
rs.movefirst
..
针对基于SQL Server的过程中最常见的用户连接失败,本文重点研究了如何诊断和解决的两种情况下使用SQL Server的客户端工具和用户开发的应用程序在连接失败。读了这篇文章之后,我相信每个读者都会有一个全面而深入的SQL服务器的连接原则的理解,认证模式的开发与应用。