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

含@符号的SQL Server登录名致ODBC连接失败,求解决方案

解决含@符号的SQL Server ODBC登录问题

错误详情

错误代码:HY000
错误信息:

[HY000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]无法打开登录请求的服务器"dominio",登录失败。

问题原因

ODBC驱动解析连接字符串时,会把@符号默认当作登录名与服务器名称的分隔符,导致它误将user123@dom.com.br中@后的内容识别为目标服务器名称,从而引发登录失败。

解决方案

修改连接字符串中的UID参数,用双引号包裹带@的登录名,或者直接移除不必要的花括号,避免驱动错误解析:

修正后的完整代码

parametros = (
    'DRIVER={ODBC Driver 17 for SQL Server};'
    'SERVER=localhost;'
    'PORT=1433;'
    'DATABASE=database;'
    r'UID="user123@dom.com.br";'
    'PWD=123456'
)

try:
    conexao = pyodbc.connect(parametros)
    print("连接成功")
except Exception as e:
    print(f"连接失败:{str(e)}")
else:
    cursor = conexao.cursor()
    # 这里可添加后续数据库操作

额外提示

  • 原代码仅捕获TypeError范围过窄,改成捕获通用Exception能覆盖所有连接相关错误,便于排查问题。
  • 若使用Azure AD认证,可尝试在连接字符串中添加Authentication=ActiveDirectoryPassword参数(仅适用于特定认证场景)。

内容的提问来源于stack exchange,提问作者Marconi's tech

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:10:25