如何解决SQL Server 2000中的连接问题
类别: MSSQL教程
重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
本任务的内容
概要
解决连接问题
验证 DNS 设置
验证启用的协议和别名
验证 SQL Server 实例正在正确地侦听
解决 MDAC 问题
解决防火墙问题
解决身份验证和安全问题
解决 TCP/IP 套接字上的压力问题
查看 SQL Server 实例是否以单用户模式启动
验证到 SQL Server 的命名管道连接
解决在恢复过程中连接超时的问题
测试连接到 SQL Server 实例的不同方法
捕捉网络监视器踪迹
参考
概要
本文能帮助您解决 Microsoft SQL Server 2000 的连接问题。本文描述了常见连接问题和所能采取的有助于解决连接问题的步骤。
SQL Server 2000 支持 SQL Server 实例和客户端应用程序间的多种通信方式。如果您的客户端应用程序和 SQL Server 实例位于同一台计算机上,那么 Microsoft Windows 处理之间的通讯 (IPC) 部件(例如本地命名管道或共享内存协议)将被用于通信。但是,当客户端应用程序和 SQL Server 实例位于不同计算机上时,一个网络 IPC(例如 TCP/IP 或命名管道)将被用于通信。
SQL Server 2000 使用网络库(一个 DLL)与特定的网络协议进行通信。一对匹配网络库必须在客户端计算机上激活,而且在支持待用网络协议的服务器计算机上也必须是激活的。例如,如果您想启用一个客户端应用程序,通过 TCP/IP 与某个特定的 SQL Server 实例通信,那么客户端的 TCP/IP 套接字网络库 (Dbnetlib.dll) 就必须配置为连接到客户端计算机的服务器。同样,服务器 TCP/IP 套接字网络库 (Ssnetlib.dll) 必须侦听服务器计算机。在此方案中,TCP/IP 协议堆栈必须同时安装在客户端计算机和服务器计算机上。
在安装完 SQL Server 2000 之后,您可以通过客户端网络实用程序来配置客户端网络库的属性。您可以通过服务器网络实用程序 (Svrnetcn.exe) 来配置服务器网络库的属性。在安装 SQL Server 安装程序中的服务器工具时,服务器的网络库也同时被安装了。但是,某些服务器的网络库可能未被激活。在默认情况下,SQL Server 2000 启用并侦听 TCP/IP、命名管道和共享内存。因此,如果一个客户端要连接到一台服务器计算机,该客户端必须使用一个客户端网络库,该网络库须与 SQL Server 实例正在使用的服务器网络库之一相匹配。
有关 SQL Server 通讯部件和网络库的其他信息,请参见“SQL Server 在线参考书”中的下列主题:
通信部件
客户端和服务器网络库
管理客户端
返回页首
解决连接问题
在 SQL Server 2000 中您可能会注意到的大多数连接问题都是由 TCP/IP 的问题或 Windows 身份认证的问题引起,或者由两者共同引起。
重要说明:在开始解决 SQL Server 2000 的连接问题之前,请确认 MSSQLServer 服务已在运行 SQL Server 的计算机上启动。
返回页首
验证 DNS 设置
域名系统 (DNS) 中的名称解析过程用于解析 SQL Server 实例名称的 IP 地址。如果名称解析过程工作不正常,就不能获得 SQL Server 实例,您可能会收到一条或多条下列错误信息:
SQL Server does not exist or access denied
General Network Error
Cannot Generate SSPI Context
要验证名称解析过程是否在解析正确的服务器,可以使用服务器名和服务器的 IP 地址 ping 服务器。为此,请按以下步骤操作:
单击“开始”,然后单击“运行”。
在“运行”对话框中,在“打开”框中键入 cmd,然后单击“确定”。
在命令提示符下,运行下列命令:
ping <Server Name>
记录返回的 IP 地址。
在命令提示符下,运行下列命令(此处的 IP address 就是您在步骤 3 中记录的 IP 地址):
ping ?Ca <IP address>
验证命令解析的是正确的服务器名。如果两个指定的命令有任何一个不成功、超时或没有返回正确的值,那么 DNS 查找未能正常工作,或者有其他网络或路由问题引发问题。要查看当前 DNS 设置,在命令提示符下运行下列命令:
ipconfig /all
有关 ipconfig 命令的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
223413 Windows 2000 中 Ipconfig.exe 的选项
要解决此问题,可以在客户端计算机上的 %systemroot%/system32/drivers/etc/hosts 文件中为服务器添加一个条目。要解决此问题,还可以使用命名管道网络库连接到服务器。
返回页首
验证启用的协议和别名
如果客户端计算机上的别名设置错误,可能会引起连接问题。您可以使用客户端网络实用程序查看别名。为此,请按以下步骤操作:
启动客户端网络实用程序。如果 SQL Server 客户端工具被安装在正在运行客户端应用程序的计算机上,请按照以下步骤启动客户端网络实用程序:
单击“开始”,然后指向“程序”。
指向“Microsoft SQL Server”,然后单击“客户端网络实用程序”。
如果 SQL Server 客户端工具没有安装在客户端计算机上,请按照以下步骤启动客户端网络实用程序:
单击“开始”,然后单击“运行”。
在“运行”对话框中,在“打开”框中键入 cliconfg,然后单击“确定”。
在“SQL Server 客户端网络实用程序”窗口中,单击“常规”标签,然后启用您要使用的所有协议。
注意:您必须至少启用 TCP/IP 协议和命名管道协议。
单击“别名”标签,然后验证为 SQL Server 实例所配置的别名。
验证别名的属性,确认服务器名或 IP 地址和协议的配置是正确的。
通过使用服务器名、IP 地址或者其他协议,您可以创建一个新的别名以测试连接性能。
注意:在 Microsoft 数据存取部件 (MDAC) 的早期版本中,客户端网络实用程序的用户界面是不同的。因此,如果您没有看到本文中列出的选项,请在运行客户端应用程序的计算机上安装 MDAC 的新版本。
返回页首
验证 SQL Server 实例正在正确地侦听
要验证 SQL Server 实例正在正确地侦听命名管道、TCP/IP 或您在客户端应用程序中使用的其他协议,请打开当前的 SQL Server 错误日志文件。SQL Server 错误日志文件可能包括与以下类似的条目:
2003-11-06 09:49:36.17 server SQL server listening on TCP, Shared Memory, Named Pipes.
2003-11-06 09:49:36.17 server SQL server listening on 192.168.1.5:1433, 127.0.0.1:1433.
通过分析 SQL Server 错误日志文件中的条目,可以验证 SQL Server 实例是否正在侦听正确的 IP 地址和端口。在默认情况下,一个默认的 SQL Server 实例侦听端口 1433。您还可以使用服务器网络实用程序来验证 SQL Server 的协议设置并更改 SQL Server 中的属性,包括可以连接到 SQL Server 和可以使用的端口的协议。关于使用服务器网络实用程序的更多信息,请参见 SQL Server 在线参考书中的“SQL Server 网络实用程序”专题。
有时候,SQL Server 2000 可能不会绑定于端口 1433 或任何其他指定的端口。如果端口正被其他应用程序使用,或者如果您正在尝试使用一个错误的 IP 地址进行连接,就可能会出现此问题。因此,TCP/IP 到 SQL Server 的连接可能不成功,在 SQL Server 错误日志中您会收到下列错误信息:
2001-11-14 15:49:14.12 server SuperSocket Info:Bind failed on TCP port 1433.
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
307197 PRB:TCP/IP 端口正由另一应用程序使用
256986 Microsoft Windows 注册表说明
本任务的内容
概要
解决连接问题
验证 DNS 设置
验证启用的协议和别名
验证 SQL Server 实例正在正确地侦听
解决 MDAC 问题
解决防火墙问题
解决身份验证和安全问题
解决 TCP/IP 套接字上的压力问题
查看 SQL Server 实例是否以单用户模式启动
验证到 SQL Server 的命名管道连接
解决在恢复过程中连接超时的问题
测试连接到 SQL Server 实例的不同方法
捕捉网络监视器踪迹
参考
概要
本文能帮助您解决 Microsoft SQL Server 2000 的连接问题。本文描述了常见连接问题和所能采取的有助于解决连接问题的步骤。
SQL Server 2000 支持 SQL Server 实例和客户端应用程序间的多种通信方式。如果您的客户端应用程序和 SQL Server 实例位于同一台计算机上,那么 Microsoft Windows 处理之间的通讯 (IPC) 部件(例如本地命名管道或共享内存协议)将被用于通信。但是,当客户端应用程序和 SQL Server 实例位于不同计算机上时,一个网络 IPC(例如 TCP/IP 或命名管道)将被用于通信。
SQL Server 2000 使用网络库(一个 DLL)与特定的网络协议进行通信。一对匹配网络库必须在客户端计算机上激活,而且在支持待用网络协议的服务器计算机上也必须是激活的。例如,如果您想启用一个客户端应用程序,通过 TCP/IP 与某个特定的 SQL Server 实例通信,那么客户端的 TCP/IP 套接字网络库 (Dbnetlib.dll) 就必须配置为连接到客户端计算机的服务器。同样,服务器 TCP/IP 套接字网络库 (Ssnetlib.dll) 必须侦听服务器计算机。在此方案中,TCP/IP 协议堆栈必须同时安装在客户端计算机和服务器计算机上。
在安装完 SQL Server 2000 之后,您可以通过客户端网络实用程序来配置客户端网络库的属性。您可以通过服务器网络实用程序 (Svrnetcn.exe) 来配置服务器网络库的属性。在安装 SQL Server 安装程序中的服务器工具时,服务器的网络库也同时被安装了。但是,某些服务器的网络库可能未被激活。在默认情况下,SQL Server 2000 启用并侦听 TCP/IP、命名管道和共享内存。因此,如果一个客户端要连接到一台服务器计算机,该客户端必须使用一个客户端网络库,该网络库须与 SQL Server 实例正在使用的服务器网络库之一相匹配。
有关 SQL Server 通讯部件和网络库的其他信息,请参见“SQL Server 在线参考书”中的下列主题:
通信部件
客户端和服务器网络库
管理客户端
返回页首
解决连接问题
在 SQL Server 2000 中您可能会注意到的大多数连接问题都是由 TCP/IP 的问题或 Windows 身份认证的问题引起,或者由两者共同引起。
重要说明:在开始解决 SQL Server 2000 的连接问题之前,请确认 MSSQLServer 服务已在运行 SQL Server 的计算机上启动。
返回页首
验证 DNS 设置
域名系统 (DNS) 中的名称解析过程用于解析 SQL Server 实例名称的 IP 地址。如果名称解析过程工作不正常,就不能获得 SQL Server 实例,您可能会收到一条或多条下列错误信息:
SQL Server does not exist or access denied
General Network Error
Cannot Generate SSPI Context
要验证名称解析过程是否在解析正确的服务器,可以使用服务器名和服务器的 IP 地址 ping 服务器。为此,请按以下步骤操作:
单击“开始”,然后单击“运行”。
在“运行”对话框中,在“打开”框中键入 cmd,然后单击“确定”。
在命令提示符下,运行下列命令:
ping <Server Name>
记录返回的 IP 地址。
在命令提示符下,运行下列命令(此处的 IP address 就是您在步骤 3 中记录的 IP 地址):
ping ?Ca <IP address>
验证命令解析的是正确的服务器名。如果两个指定的命令有任何一个不成功、超时或没有返回正确的值,那么 DNS 查找未能正常工作,或者有其他网络或路由问题引发问题。要查看当前 DNS 设置,在命令提示符下运行下列命令:
ipconfig /all
有关 ipconfig 命令的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
223413 Windows 2000 中 Ipconfig.exe 的选项
要解决此问题,可以在客户端计算机上的 %systemroot%/system32/drivers/etc/hosts 文件中为服务器添加一个条目。要解决此问题,还可以使用命名管道网络库连接到服务器。
返回页首
验证启用的协议和别名
如果客户端计算机上的别名设置错误,可能会引起连接问题。您可以使用客户端网络实用程序查看别名。为此,请按以下步骤操作:
启动客户端网络实用程序。如果 SQL Server 客户端工具被安装在正在运行客户端应用程序的计算机上,请按照以下步骤启动客户端网络实用程序:
单击“开始”,然后指向“程序”。
指向“Microsoft SQL Server”,然后单击“客户端网络实用程序”。
如果 SQL Server 客户端工具没有安装在客户端计算机上,请按照以下步骤启动客户端网络实用程序:
单击“开始”,然后单击“运行”。
在“运行”对话框中,在“打开”框中键入 cliconfg,然后单击“确定”。
在“SQL Server 客户端网络实用程序”窗口中,单击“常规”标签,然后启用您要使用的所有协议。
注意:您必须至少启用 TCP/IP 协议和命名管道协议。
单击“别名”标签,然后验证为 SQL Server 实例所配置的别名。
验证别名的属性,确认服务器名或 IP 地址和协议的配置是正确的。
通过使用服务器名、IP 地址或者其他协议,您可以创建一个新的别名以测试连接性能。
注意:在 Microsoft 数据存取部件 (MDAC) 的早期版本中,客户端网络实用程序的用户界面是不同的。因此,如果您没有看到本文中列出的选项,请在运行客户端应用程序的计算机上安装 MDAC 的新版本。
返回页首
验证 SQL Server 实例正在正确地侦听
要验证 SQL Server 实例正在正确地侦听命名管道、TCP/IP 或您在客户端应用程序中使用的其他协议,请打开当前的 SQL Server 错误日志文件。SQL Server 错误日志文件可能包括与以下类似的条目:
2003-11-06 09:49:36.17 server SQL server listening on TCP, Shared Memory, Named Pipes.
2003-11-06 09:49:36.17 server SQL server listening on 192.168.1.5:1433, 127.0.0.1:1433.
通过分析 SQL Server 错误日志文件中的条目,可以验证 SQL Server 实例是否正在侦听正确的 IP 地址和端口。在默认情况下,一个默认的 SQL Server 实例侦听端口 1433。您还可以使用服务器网络实用程序来验证 SQL Server 的协议设置并更改 SQL Server 中的属性,包括可以连接到 SQL Server 和可以使用的端口的协议。关于使用服务器网络实用程序的更多信息,请参见 SQL Server 在线参考书中的“SQL Server 网络实用程序”专题。
有时候,SQL Server 2000 可能不会绑定于端口 1433 或任何其他指定的端口。如果端口正被其他应用程序使用,或者如果您正在尝试使用一个错误的 IP 地址进行连接,就可能会出现此问题。因此,TCP/IP 到 SQL Server 的连接可能不成功,在 SQL Server 错误日志中您会收到下列错误信息:
2001-11-14 15:49:14.12 server SuperSocket Info:Bind failed on TCP port 1433.
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
307197 PRB:TCP/IP 端口正由另一应用程序使用
本新闻共3
本新闻共2页,当前在第1页 1 2
- 上一篇: 设定sql server定期自动备份数据库
- 下一篇: 全接触sqlserver异常与孤立事务
-= 资 源 教 程 =-
文 章 搜 索