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

使用Flask和pyodbc连接数据库时出现登录超时错误如何解决

这个HYT00登录超时错误是SQLAlchemy通过pyodbc驱动连接SQL Server时,无法在指定超时时间内和数据库建立连接导致的,属于配置、服务或网络层面的故障。

常见触发原因
  • 数据库连接URI配置错误:比如示例中写的./作为数据库地址、用户名、密码、数据库名填写错误,或者实例名未指定
  • 本地SQL Server服务未启动,或者默认1433端口未开启监听
  • ODBC Driver 17 for SQL Server未正确安装,或版本与系统架构不匹配
  • 系统防火墙拦截了程序到SQL Server端口的连接请求
  • SQL Server默认未启用TCP/IP连接协议,无法通过网络方式连接
  • 若使用SQL Server Express版本,默认实例名为SQLEXPRESS,未在连接地址中指定会导致连接失败
  • 代码中SQLALCHEMY_TRACK_MODIFICATIONS配置项的值写为大写FALSE,Python中布尔值为小写开头的False,未定义变量也可能引发连锁连接异常
排查与解决步骤
  1. 修正数据库连接URI配置
    正确的连接URI格式分两种场景:
  • 使用SQL Server账号密码验证:
mssql+pyodbc://<你的用户名>:<你的密码>@<数据库地址>\<可选实例名>/<数据库名>?driver=ODBC+Driver+17+for+SQL+Server

比如本地安装SQL Server Express版,账号sa、密码123456、数据库名为test的配置示例:
mssql+pyodbc://sa:123456@localhost\SQLEXPRESS/test?driver=ODBC+Driver+17+for+SQL+Server

  • 使用Windows身份验证(无需账号密码):
    mssql+pyodbc://@localhost\SQLEXPRESS/test?driver=ODBC+Driver+17+for+SQL+Server&Trusted_Connection=yes
    同时将代码中的FALSE改为False。
  1. 检查SQL Server服务状态
    Windows系统按下Win+R输入services.msc打开服务管理器,找到SQL Server(你的实例名)服务,确认状态为正在运行,未运行则手动启动。

  2. 启用SQL Server TCP/IP协议
    打开SQL Server配置管理器,依次进入SQL Server网络配置 -> 对应实例的协议设置,右键TCP/IP选择启用,进入TCP/IP属性的IP地址页,拉到最下方将TCP端口设置为1433,保存后重启SQL Server服务。

  3. 验证ODBC驱动可用性
    按下Win+R输入odbcad32.exe(64位系统进入C:\Windows\System32\odbcad32.exe)打开ODBC数据源管理器,新建用户DSN,选择ODBC Driver 17 for SQL Server,按照向导填写数据库信息测试连接,若此处无法连接,先重新安装对应版本的ODBC驱动。

  4. 排查防火墙拦截
    临时关闭系统防火墙测试连接,若关闭后可正常连接,在防火墙规则中添加1433端口的入站、出站允许规则即可。

  5. 延长连接超时时间
    如果是网络延迟导致的超时,可在连接URI末尾添加&timeout=30参数,将超时时间延长到30秒测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:09:03