GitHub Action中SQL Server连接失败问题求助及排查记录
问题原因分析
SQL Server密码复杂度强制校验
SQL Server的Docker镜像默认开启了强密码策略,自定义密码如果不满足复杂度要求(比如缺少大小写字母、数字、特殊字符中任意一种,或长度不足),SQL Server实际并未完成完整初始化——虽然容器健康检查显示正常,但服务会拒绝所有连接请求。官方推荐的yourStrong(!)Password是完全符合复杂度标准的组合,能顺利完成初始化。GitHub Action配置的密码转义问题
如果自定义密码包含YAML语法敏感的特殊字符(比如$、&、!),在Workflow配置文件中未做转义处理的话,密码会被YAML解析器篡改或截断,导致容器实际设置的sa密码和你预期的不一致,自然连不上。而官方默认密码里的(!)属于YAML无需转义的字符,能被正确传递给容器。容器初始化的稳定性差异
官方默认密码是镜像官方预验证过的配置,容器初始化流程更顺畅;自定义密码的配置可能触发额外的初始化逻辑,导致健康检查通过后,服务仍需几秒才能处理连接请求——你的测试代码如果没做足够的等待,就会出现连接被拒绝的情况。
内容的提问来源于stack exchange,提问作者Sig
相关产品推荐
相关产品推荐

