You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何连接Docker容器内的MSSQL服务器?sa登录失败该如何解决?

Docker部署MSSQL SA登录失败问题解决方案

核心问题定位

你遇到的18456 错误 状态7本质是SA密码验证不通过,核心触发原因是docker-compose配置的环境变量存在隐形拼写错误,同时可能存在旧挂载数据残留的问题。


具体修复步骤

1. 修正环境变量拼写错误

你配置中的环境变量*SА_PASSWORD*存在编码问题:变量名第二个字符为西里尔字母А,与MSSQL要求的标准拉丁字母A编码不一致,导致服务无法识别该变量,未正确初始化SA密码。
将environment段修正为如下内容:

environment:
  - "SA_PASSWORD=Lmnt!1991"
  - "ACCEPT_EULA=Y"
  - "TZ=Europe/Belgrade"

2. 清理历史残留数据

如果此前已经启动过该服务,本地./data目录已经留存旧的MSSQL数据,SA密码会以首次启动时的配置为准,后续修改环境变量不会更新已有数据的密码,需要手动清理:

  • 停止并删除现有容器:docker-compose down -v
  • 删除本地挂载目录:rm -rf ./data
  • 重新启动服务:docker-compose up -d

3. 验证连接

等待服务启动2~3分钟后执行以下命令测试连接:

sudo docker exec -it mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "Lmnt!1991"

成功进入sqlcmd交互界面即代表修复完成。


可选排查项

若上述操作后仍无法登录,可检查以下内容:

  • 确认本地1433端口未被其他服务占用,执行命令:ss -tulnp | grep 1433
  • 确认容器运行状态正常,无频繁重启,执行命令:docker ps
  • 确认SA密码符合MSSQL复杂度要求:你使用的Lmnt!1991已满足至少8位、包含大小写、数字、特殊符号的要求,无需调整

内容的提问来源于stack exchange,提问作者Lord M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:06:03