我新安装了 SQL Server 2012。尚未创建数据库。我可以使用 sa/password 打开 Management Studio。Binn\sqlservr.exe 作为服务启动,我可以在服务列表中看到它启动。但是,它没有侦听 1433 端口,甚至默认情况下也没有侦听任何端口,如下所示:
tasklist|find /I "sql"
Run Code Online (Sandbox Code Playgroud)
我有:
sqlservr.exe 5668 Services 0 40,112 K
Run Code Online (Sandbox Code Playgroud)
其中5668我认为是PID。然后获取 PID = "5668" 正在监听哪个端口:
netstat -ano | find /I "5668"
Run Code Online (Sandbox Code Playgroud)
但我除了空白什么都没有。另一方面,在本站搜索帖子后,我再次检查了我的 SQL Server 配置:开始->所有程序-> Microsoft SQL Server 2012 -> 配置工具 -> SQL Server 配置管理器-> SQL Server SQL Native Client 11.0配置 -> 客户端协议 -> TCP/IP -> 默认端口 1433。有 3 个服务,SQL Server(MyInstanceName)、SQL Server Agent(MyInstanceName) 和 SQL Server Browser。最后两个停止。
SQL Server 配置管理器-> SQL Server 网络配置-> MyInstanceName 的协议-> TCP/IP 默认禁用,在我启用它并重新启动服务后重复 netstat -ano | find /I "newPIDNum" 命令我找到了
TCP 0.0.0.0:52395 0.0.0.0:0 LISTENING 5668(newPIDNum)
Run Code Online (Sandbox Code Playgroud)
为什么是 52395 而不是 1433?我无法使用 Windows ODBC 数据源管理员创建 DSN,这会返回一个错误:未找到指定的 SQL 服务器。对我有什么帮助吗?谢谢。
小智 19
使我的 SQL 服务器侦听TCP端口 1433 上的连接的原因如下...
TCP通信TCP通信条目,选择PropertiesPort“ IPAll ”条目中输入 1433 。检查您的配置netstat -an:
C:\>netstat -an | find "1433"
TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING
TCP [::]:1433 [::]:0 LISTENING
Run Code Online (Sandbox Code Playgroud)Rem*_*anu 13
为什么是 52395 而不是 1433
命名实例侦听动态端口。Sql Server 浏览器服务的工作是通知客户端实际端口。Sql 浏览器侦听 UDP 1434 并回答“实例“foo”的侦听端口是什么?”形式的问题。TCP 和命名管道协议都需要 Sql Server Browser 服务。客户端透明地使用 SQL Server Browser,无需特殊配置。通过在连接字符串(或 ODBC DSN)中简单地指定一个实例名称,客户端库知道它必须首先联系 SQL Server Browser 服务。
有 3 个服务,SQL Server(MyInstanceName)、SQL Server Agent(MyInstanceName) 和 SQL Server Browser。最后两个停了
显然,SQL Server Browser 要完成它的工作,它需要被启动。启动它,并将启动类型更改为自动。
作为旁注,经常使用的替代配置是为命名实例使用静态端口并在连接字符串 ( tcp:<hostname>:<port>) 中指定端口。它具有将 SQL Server Browser 排除在外的优势,但它需要仔细维护客户端。更改侦听端口需要在所有客户端、所有机器、所有位置进行精心策划的更改,这通常是一个很大的痛苦。我建议改为依赖 SQL Server Browser。
| 归档时间: |
|
| 查看次数: |
37588 次 |
| 最近记录: |