SQL Server 客户端连接的问题

经常有人反映说SQL Server 客户端连接不上。现在将这类问题归纳如下:


一、SQL Server 实例(服务)未启动

  打开“SQL Server 配置管理器”(或者“管理工具”中的“服务”),检查对应的实例(服务)的状态是否为“正在运行”(或者“已启动”)。如果该实例没有启动(甚至客户端在连接时使用了错误的主机名和实例名),这个时候客户端当然连接不到SQL Server数据库了。



二、网络通讯协议未启用

  如果客户端使用网络协议去连接SQL Server,那么就要求SQL Server的实例(服务)也要启用相应的网络协议。一般可能出现有2种状况:

  1. 发现在SQL Server本机可以访问,但是客户端不行。这是因为,从SQL Server 2005开始,本地访问时默认使用Shared Memory(可以理解为直接去内存中访问),而远程客户端是不可能使用Shared Memory的。

  2. 修改了网络配置,启用了TCP/IP协议,可是没有重启SQL Server 实例(服务),没有生效。


三、TCP/IP端口配置

  对于TCP/IP协议,请注意端口的配置。

1. 是否“全部侦听”

  如下图,此时“协议”选项卡的“全部侦听”为“是”,表示本机所有的网卡都使用同一个端口。



  如果“全部侦听”设置为“否”,那么这台服务器的每一块网卡都可以独立配置“TCP端口”以及“已启用”。


2. 动态端口

  如果“TCP动态端口”设为0,那么将使用动态端口。

  由于动态端口在每次启用SQL Server实例(服务)时都可能改变,所以客户端访问时将自动向这台服务器的UDP 1434端口查询,询问对应的SQL Server实例(服务)的当前端口。UDP 1434对应的服务是SQL Server Browser,它负责向客户端返回其查询的SQL Server实例(服务)对应的TCP端口。



四、防火墙

  由于Windows 2008及后续版本增强了安全性,因此在安装SQL Server时并不会自动打开防火墙端口。


  关于防火墙的配置,请参考 http://jimshu.blog.51cto.com/3171847/590411 “三、为SQL Server 开放端口”。


五、帐户与密码错误

1. 访问权限的问题

  客户端访问时使用的某个帐户没有权限,当然也就不能访问 SQL Server。


2. 帐户被禁用



3. 如果是SQL帐户登录

  如果在安装SQL Server时就指定身份验证模式为“混合模式”,那么就可以允许SQL Server帐户,否则只允许Windows帐户。


  安装完成之后,如果要修改身份验证模式,可以通过SQL Server Management Studio修改。修改后需要重启该SQL Server实例(服务)才会生效。


本文出自 “我们一起追过的MSSQL” 博客,谢绝转载!

SQL Server 客户端连接的问题,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。