更新:
回溯到 SQL Server 2017 Express 的一个版本允许我保存在 SQL Server 配置管理器中输入的 TCP/IP 端口和 IP 地址。
这些变量均未保存在注册表中:
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server**INST**\MSSQLServer\SuperSocketNetLib\Tcp}\
在 SQL Server 配置管理器中,仅当 IP 部分的“活动”状态设置为“否”时才会出现此错误消息:
The specificed file is read only. [0x80071779].
对我来说,这适用于 2017 年和 2019 年。
旧描述:
我已经安装了本地 SQL Server 2019 Express(上交所 2019),我可以使用以下方式本地连接:
<computer_name>/<sql_server_name>
。
我在尝试设置静态端口以启用远程连接时遇到问题。
在 SQL Server 配置管理器中配置端口时(SSCM)-> TCP/IP,保存时出现 WMI 错误:
The specificed file is read only. [0x80071779].
搜索这个问题让我找到了这个页显示与我收到的相同的错误消息。
本页描述了一种解决方法,即更改注册表中的端口和 IP 设置。但是,TCP 的所有子键:IP1、IP2、IP3 等对我来说都丢失了。运行 SQL Server 2019 Express 的人能否确认此结构仍在用于此版本的 SSE?
奇怪的是,当我能够使用 SSCM(其中称为 IPALL)更改名为 Tcp 的项中的 TcpPort 值时,WMI 错误指向只读问题,并且通过重新启动服务器,注册表中的值会正确更新
。`
到目前为止,我尝试远程连接失败
我有:
- 在路由器和防火墙上打开标准 SQL 服务器端口
- 尝试彻底关闭防火墙
- 在注册表中添加了缺失的键及其内容基于此,但似乎不起作用(SSCM 甚至没有读取它们)
- 尝试上述操作时,多次重新启动 SQL 服务器及其服务、SQL 服务器配置管理器应用程序和计算机
- 确保 SQL 服务器属性中的远程连接已打开(默认情况下已打开)
关于本地连接的一些说明
更新:
当仅使用一个 Sql 服务器实例(并具有工作端口管理)时,您只需输入服务器的 IP 地址即可启动连接。
老的:
虽然一切进展顺利:
<computer_name>/<sql_server_name>
我无法使用127.0.0.1
或本地连接到 SQL 服务器127.0.0.1, <port>
。
连接到本地主机的正确语法是什么?
一些建议是使用逗号分隔 IP 和端口:
<x.x.x.x>/<SQL_server_name>, <PortNumber>
使用冒号也能起到同样的作用吗?
<x.x.x.x>:<portNumber>/<SQL_server_name>
答案1
完全卸载 SQL Server,安装一个较旧版本的 SQL Server。以相同的方式设置,问题解决。也更新了问题。
答案2
就我的情况 (SQL Server 2019) 而言,以上方法均无效。问题与 Hyper-V 有关。我怀疑它创建的网桥与 SQL Server 网络设置冲突。卸载 Hyper-V 可恢复正常运行。可能只需停用 Hyper-V 网桥也可以。