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

Mac 10.14下使用Docker和Azure Data Studio部署SQL失败求助

问题:Docker部署SQL Server 2022后Azure Data Studio连接失败(错误代码35)

问题详情

  • 操作流程:跟随YouTube教程操作,Docker运行正常,执行启动命令:
    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Password@" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2022-latest
    
    容器成功启动,但Azure Data Studio按教程配置连接信息后,报错错误代码35,无法连接SQL Server。
  • 疑问与额外信息:
    • 曾收到关闭防火墙的建议,但存在三点困惑:关闭防火墙无需先连接SQL;教程镜像理论上不需要此操作;不清楚具体操作方式。
    • 初始Docker日志出现error 17836,查知该错误与入侵检测系统相关,但无法理解;在家使用后该日志错误消失,但连接问题仍存在,附Docker实例日志截图。

排查与解决步骤

1. 验证容器运行状态与端口映射

  • 执行docker ps,确认目标容器的STATUS为Up状态,且PORTS列显示0.0.0.0:1433->1433/tcp或:::1433->1433/tcp,确保端口映射生效。
  • 若容器未正常运行,执行docker logs <容器ID/容器名称>查看启动失败原因,重点检查SA_PASSWORD是否符合复杂度要求(需至少8位,包含大小写字母、数字、特殊字符)。

2. 测试本地端口连通性

  • Windows系统:执行telnet localhost 1433,若连接成功则端口正常;若失败,检查1433端口是否被本地其他程序(如本地安装的SQL Server)占用。
  • Linux/macOS系统:执行nc -zv localhost 1433,验证端口是否开放。

3. 核对Azure Data Studio连接参数

  • 服务器名称输入localhost,1433或127.0.0.1,1433(避免仅写localhost导致DNS解析异常)。
  • 确认身份验证类型为SQL登录,用户名为sa,密码为启动容器时设置的Password@,注意大小写与特殊字符的正确性。
  • 若开启了代理,临时关闭Azure Data Studio的代理设置,排除代理拦截连接的可能。

4. 防火墙配置说明(无需提前连接SQL)

  • 防火墙无需连接SQL即可修改,无需完全关闭,只需开放1433端口:
    • Windows:打开「Windows Defender防火墙」→「高级设置」→「入站规则」,新建TCP规则允许1433端口的连接;也可临时关闭防火墙测试(测试后务必重新开启)。
    • Linux:若使用ufw防火墙,执行sudo ufw allow 1433/tcp;若使用firewalld,执行sudo firewall-cmd --add-port=1433/tcp --permanent && sudo firewall-cmd --reload。
    • 教程镜像无需特殊防火墙操作是常规场景,但如果本地防火墙拦截了Docker的端口流量,就需要配置对应规则。

5. error 17836相关说明(当前已消失)

  • 该错误是SQL Server接收到不符合TDS协议的数据包导致,通常由网络环境中的入侵检测系统(IDS)或安全软件拦截/修改数据包引发,在家环境中消失说明是之前网络环境的安全设备导致,当前无需关注。

6. 分析最新Docker日志

  • 执行docker logs <容器ID/容器名称>,重点查找:
    • SQL Server is now ready for client connections:确认SQL Server已完全启动并等待连接。
    • 包含error或failed的条目,定位运行中的异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:36:08