从SQL Server中的aLL IP接受远程TCP / IP请求

时间:2016-07-01 15:37:15

标签: sql-server

我遇到使用TCP / IP访问SQL Server的问题。

我想SQL实例从该机器的所有网络适配器接受客户端。

我转到配置管理器控制台并启用TCP / IP,将TCP端口设置为1433(或任何其他端口),将“TCP Dynamic Port”设置为Blank并将“Listen All”设置为true。完成这些更改后,我重新启动SQL Server服务并启动SQL服务将失败。为了启动SQL服务,我必须将“Listen All”更改为false,然后服务将成功启动。

但是在禁用“Listen ALL”后,您必须在“IP地址”选项卡中设置适配器IP,SQL将仅接受来自该IP的请求,如果您未指定任何IP,则SQL不接受任何TCP / IP请求。

现在我需要知道为什么启用“Listen ALL”会导致服务失败。我该如何解决这个问题?

我运行了“netstate -a”,我看到没有应用程序在TCP上有端口1433。

当“Listen ALL”被禁用且我没有添加任何特定的IP时,我使用“portquery.exe”检查SQL浏览器服务(UDP 1434),并且SQL浏览器响应不包含任何TCP端口。

我添加了1个特定的IP SQL浏览器服务后,包括TCP 1433。

正如我所提到的,如果启用“Listen ALL”,SQL服务将失败,重启后无法启动。

服务重启失败后,我检查了windows event viwer,我看到4错误如下:

  1. TDSSNIClient初始化失败,错误0xd,状态码0x10。原因:无法从TCP / IP协议中检索注册表设置' IPAll'配置密钥。数据无效。

  2. TDSSNIClient初始化失败,错误为0xd,状态码为0x1。原因:初始化因基础结构错误而失败。检查以前的错误。数据无效。

  3. 由于网络库中存在内部错误,无法启动网络库。要确定原因,请在错误日志中查看此错误之前的错误。

  4. SQL Server无法生成FRunCommunicationsManager线程。检查SQL Server错误日志和Windows事件日志,以获取有关可能存在的相关问题的信息。

  5. 最后,我如何收听所有IP?

    由于

    这是我的rgistry IPAll的图像

    enter image description here

1 个答案:

答案 0 :(得分:0)

This article似乎指的是同一个问题。下面是关于如何解决问题的部分。也许它也是你问题的解决方案。

  

因此,错误表示IPAll配置密钥中的数据无效。   这个钥匙究竟在哪里? TCP协议和IPAll   子键,位于:

     

HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL   ServerMSSQLServerSuperSocketNetLib

     

在IPAll子项下,您将找到相同的两个“TCP动态端口”   和“TCP端口”键。检查TCP动态端口密钥的值。做   你在那里看到一个空白?如果是这样,那很可能就是这个原因   服务启动失败。删除空白应该修复   问题,服务应该上网就好了。