咨询使用SSMS无法登录Docker部署的SQL Server 2019本地实例的问题
SQL Server Docker容器本地SSMS连接失败排查
基础概念澄清
- sa是SQL Server的内置默认系统管理员账号,容器部署模式下不会自动创建其他管理员账号,仅通过环境变量在实例初始化时配置sa账号的登录密码。
启动命令的高频踩坑点
当前使用的启动命令存在两处可直接导致连接失败的问题:
- 密码占位符未替换:命令中的
SA_PASSWORD=<myPassword14>,尖括号为官方文档的占位符标记,不属于密码组成部分。如果直接将带尖括号的整串传入容器环境变量,实际容器内存储的sa密码会包含前后尖括号字符,与SSMS中输入的无尖括号密码完全不匹配。 - 密码复杂度不满足强制要求:SQL Server 2019要求sa密码长度至少8位,且必须同时包含大写字母、小写字母、数字、特殊字符中的至少三类。示例中的无尖括号密码
myPassword14未包含特殊字符,会在容器启动阶段触发密码校验失败,导致SQL实例无法完成正常初始化。
SSMS端连接配置规范
配置连接参数时需注意两个高频出错细节:
- 服务器地址栏填写
localhost,1433或127.0.0.1,1433,地址与端口的分隔符为英文逗号,不可使用冒号。 - 身份验证模式选择「SQL Server身份验证」,登录名填写
sa,密码填写与启动命令中完全一致的、无占位符的实际配置值。
状态验证操作
按上述配置完成后仍无法连接时,可通过PowerShell执行命令排查基础状态:
- 执行
docker ps确认sql1容器是否处于正常运行状态,若容器状态为Exited,说明启动流程已中断,执行docker logs sql1即可定位具体失败原因(常见为密码不达标、EULA接受参数配置错误)。 - 执行
docker exec -it sql1 cat /var/opt/mssql/log/errorlog查看SQL实例自身的启动日志,确认实例是否完成1433端口的正常监听初始化。
内容的提问来源于stack exchange,提问作者Meow Meow
相关产品推荐
相关产品推荐

