1433 端口被占用导致服务起不来怎么办?
SQL Server 默认端口 1433 被其他进程占用时服务启动失败的处理方法:找出占用方、改实例端口或释放端口。
简短答案
1433 是默认实例的默认 TCP 端口,被别的进程占着(常见是旧实例、测试脚本、别家数据库)服务就绑定失败起不来。处理两条路:杀掉占用进程,或给实例改一个新的固定端口。多实例机器上第二个实例默认用动态端口,一般不冲突,冲突的是固定了 1433 的实例。
怎么查占用
netstat -ano | findstr :1433
看输出里最后一列 PID,再 tasklist | findstr <PID> 查出是哪个进程。
现象对照
| 现象 | 原因 | 处理 |
|---|---|---|
| 启动服务报端口绑定失败,事件日志提示 1433 不可用 | 别的进程占着 1433 | 停占用进程,或改实例端口 |
| 两台实例都想用 1433 | 固定端口撞车 | 第二个实例改用动态端口或另选端口 |
| 改完端口远程连不上 | 客户端还按旧端口连 | 更新连接串与防火墙规则 |
处理步骤
- 用上面命令找到占用进程;是误启的旧服务/测试脚本就停掉。
- 需要长期保留两边:把 SQL Server 实例改到别的固定端口(如 1434):SSMS 里看不到改端口入口,用「SQL Server 配置管理器」的网络配置把该实例 TCP 的固定端口改掉,重启服务。
- 命名实例默认走动态端口 + Browser 服务方式,可保持默认不动。
- 改完在 SSMS 里用新端口连接验证;各实例的端口管理见 SQL Server 2022 Developer、SQL Server 2019 Developer 条目页说明。
改端口后记得同步三处:客户端连接串、Windows 防火墙放行规则、监控/告警配置,漏一处就「本地能连、远程不行」。
操作小结
- netstat 找占用 → 停占用或换端口。
- 多实例机器第二实例建议动态端口。
- 改端口要同步客户端、防火墙、监控三处。