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

Linux容器中Octopus Deploy数据库连接失败求助

解决Octopus Deploy Docker部署时SA密码不匹配的问题

针对你遇到的Error: 18456, Severity:14, State: 8(SA登录密码不匹配)问题,按以下步骤排查解决:

1. 验证数据库容器的SA密码配置

如果你的数据库是SQL Server容器(比如官方镜像),检查docker-compose.yml中db服务的环境变量:

  • 确保设置的MSSQL_SA_PASSWORD(部分旧镜像用SA_PASSWORD)值和连接字符串里的Password_01完全一致,包括大小写、特殊字符(SQL Server默认要求密码满足复杂度,你的Password_01符合要求)。
  • 示例配置:
services:
  db:
    image: mcr.microsoft.com/mssql/server
    environment:
      - MSSQL_SA_PASSWORD=Password_01
      - ACCEPT_EULA=Y

2. 确认Octopus容器的连接字符串是否正确加载

  • 执行命令查看Octopus容器内的实际连接字符串:
docker exec <你的octopus容器名称> printenv DB_CONNECTION_STRING
  • 检查输出是否和你.env文件里的Server=db,1433;Database=OctopusDeploy;User=sa;Password=Password_01完全一致,避免.env文件未被docker-compose正确读取,或者连接字符串被截断/修改。

3. 直接验证数据库SA登录

进入数据库容器,用sqlcmd测试sa登录:

docker exec -it <你的db容器名称> /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P Password_01
  • 如果登录失败:说明数据库的SA密码不是Password_01,需要删除容器和关联数据卷后,重新启动数据库容器并设置正确密码(SQL Server容器首次启动后,无法通过环境变量修改密码)。
  • 如果登录成功:说明密码本身没问题,可尝试在Octopus容器内ping db确认网络连通性(偶尔网络异常也会导致类似误报)。

4. 排查.env文件的格式问题

  • 确保.env文件中DB_CONNECTION_STRING没有多余的空格、换行,若密码包含特殊字符,需要用双引号包裹,比如:
DB_CONNECTION_STRING="Server=db,1433;Database=OctopusDeploy;User=sa;Password=Pass!@#01"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:05:22