MSSQL Server的连接问题分析和解决(1)

  近期有收到不少关于MSSQL数据库连接的问题,其中各个版本的都存在。

                      ——这里暂时不提SQL2000的连接内容,因为此文与之没有组件上存在的问题。

 

  对于SQL2005开始的一些连接问题,这里引用CSDN论坛 中的图片。如下图1

 

一、当出现无法连接到服务器 的错误提示时,原因可能是单方面的,比如以下几点:

  1)本机网路无法到达服务器。

       ×尝试ping服务器IP得知网络是否畅通。(前提是服务器开启ICMP协议)

       √关闭本地和服务器防火墙。

  2)服务器SQL服务没有开启。

       ×尝试telnet 服务器IP 1433得知SQL服务是否正常。

       √服务器端打开CMD输入net start mssqlserver,开启默认SQL服务。

  3)服务器是否配置TCP/IP协议。

       。。。

 

  以上这些都是解决问题的基本步骤,我们重点不在这里。

 

二、其他信息提示已成功与服务器建立连接,但是在登录过程中发生错误。 时,根据不同的错误代码分析如下:

  1)错误64,provider:TCP提供程序,error:0 - 指定的网络名不再可用。

       当网络链路发生断开时,通常会返回上述错误,无论是数据库软件还是其他应用软件。所以首先检查网络连接情况,排除网络断开或超时的发生。

       比较直接的方式是PING 服务器IP -t,查看是否存在数据库丢包。

 

  2)错误233,provider:共享内存提供程序,error:0 -管道的另一端上无任何进程。

       当客户端的连接数已经达到数据库实例的连接配置最大值时,通常会返回上述错误,此时客户端再也无法连接或成功登录数据库。而此时有的朋友会做重启OS的动作,重启后就可以再连接直至连接数被耗尽而再次ERR。

       比较客观的方式是正确配置实例的连接数,比如设置user connections为0。

 

三、如何检查上述两种连接的错误是否存在配置问题呢?

      我们执行以下T-SQL:

 

select name,value,value_in_use

from sys.configurations

where name in (

  'user connections' ,

  'network packet size (B)' ,

  'remote query timeout (s)' ,

  'query wait (s)' ,

  'min server memory (MB)' ,

  'max server memory (MB)' )


其中value是相应name的配置值,而value_in_use是目前正在使用的配置值,

各name分别是用户连接数、网络数据包尺寸、远程查询超时数、查询等待数以及最小和最大内存配置数。

这里强调value和value_in_use的区别是,当两个配置值不同时,表示我们已经执行了配置数的修改,但没有做reconfigure来更新配置。

 

四、如何处理上述连接错误的问题呢?

       对于错误233的连接数被耗尽这里我们只能用专用管理员DAC连接处理。当无法进行DAC连接的处理方式,请移步发现无法连接DAC的解决方法 处理。

       在SSMS中服务器名称前输入 admin:服务器IP 登录专用管理员模式,执行以下T-SQL:

 

        其中设置user connections为0,表示不限制用户登录。

 

 

Posted by: select left('claro',2) @0:35

 

lable: SQL

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值