You need to enable JavaScript to run this app. 从WSL2使用pyodbc连接Windows端SQL Server报连接超时错误
优惠活动
大模型
产品
解决方案
定价
更多

从WSL2使用pyodbc连接Windows端SQL Server报连接超时错误

从WSL2连接Windows宿主的SQL Server需要额外配置,默认SQL Server不允许虚拟网络侧的TCP连接,你遇到的登录超时错误90%是网络或端口配置问题,按以下步骤操作即可:

1 SQL Server服务端配置

  • 打开「SQL Server配置管理器」,在左侧导航栏找到「SQL Server网络配置」→「对应实例的协议」,将TCP/IP选项调整为启用状态
  • 双击TCP/IP进入设置页,切换到「IP地址」标签,拉到页面最底部的IPAll区域,将TCP端口设置为1433,TCP动态端口留空,保存配置
  • 回到「SQL Server服务」列表,右键重启SQL Server实例让配置生效
  • 如果你安装的是命名实例而非默认实例,还需要将SQL Server Browser服务设置为自动启动并启动该服务

2 Windows防火墙配置

  • 打开Windows Defender防火墙→高级设置→入站规则→新建规则
  • 规则类型选择「端口」,协议选TCP,特定本地端口填写1433,下一步选择「允许连接」
  • 配置适用网络时,根据你当前Windows的网络类型勾选对应的选项(建议域、专用、公网全选避免适配问题),给规则命名后保存即可
  • 如果你用的是命名实例,额外新建一条入站规则,放行UDP协议的1434端口

3 WSL2侧连接配置修正

你当前代码里直接填Windows主机名WSL2默认无法解析,需要修改连接地址:

  • 在WSL2终端中执行 cat /etc/resolv.conf,输出中nameserver后面的IP就是Windows宿主对WSL2虚拟网卡的IP,将代码中的server参数替换为该IP即可
  • 若不想每次IP变动都修改代码,可将server值改为DESKTOP-LFOSSEF.local,大部分WSL2发行版默认开启mDNS,可直接解析到宿主IP

验证排查

配置完成后先在WSL2终端执行 telnet <替换为你的Windows宿主IP> 1433,如果能连通说明网络配置正常,若仍报错请检查:

  • SQL Server是否开启了SQL Server和Windows混合身份验证模式
  • 你使用的user账号是否有sportsanalytics数据库的访问权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 14:30:04