我遇到使用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错误如下:
TDSSNIClient初始化失败,错误0xd,状态码0x10。原因:无法从TCP / IP协议中检索注册表设置' IPAll'配置密钥。数据无效。
TDSSNIClient初始化失败,错误为0xd,状态码为0x1。原因:初始化因基础结构错误而失败。检查以前的错误。数据无效。
由于网络库中存在内部错误,无法启动网络库。要确定原因,请在错误日志中查看此错误之前的错误。
SQL Server无法生成FRunCommunicationsManager线程。检查SQL Server错误日志和Windows事件日志,以获取有关可能存在的相关问题的信息。
最后,我如何收听所有IP?
由于
这是我的rgistry IPAll的图像
答案 0 :(得分:0)
This article似乎指的是同一个问题。下面是关于如何解决问题的部分。也许它也是你问题的解决方案。
因此,错误表示IPAll配置密钥中的数据无效。 这个钥匙究竟在哪里? TCP协议和IPAll 子键,位于:
HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL ServerMSSQLServerSuperSocketNetLib
在IPAll子项下,您将找到相同的两个“TCP动态端口” 和“TCP端口”键。检查TCP动态端口密钥的值。做 你在那里看到一个空白?如果是这样,那很可能就是这个原因 服务启动失败。删除空白应该修复 问题,服务应该上网就好了。