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

Python中pyodbc.connect连接MSSQL失败问题求助

排查Python连接MSSQL登录失败(仅B电脑报错)的问题

针对你遇到的A电脑连接成功、B电脑用相同代码却报28000登录错误的情况,可按以下步骤排查:

  • 检查ODBC驱动一致性
    确认B电脑是否正确安装了ODBC Driver 17 for SQL Server,且版本与A电脑一致。打开B电脑的「ODBC数据源管理器(64位)」,切换到「驱动程序」标签,查看是否存在对应驱动。如果驱动缺失或版本不符,重新下载安装匹配版本的驱动;也可尝试将连接字符串中的驱动改为{ODBC Driver 18 for SQL Server}(需提前安装)测试。

  • 优化连接字符串写法
    当前字符串拼接的方式容易因字符转义、空格等问题导致参数传递错误,改用pyodbc关键字参数写法规避隐患:

    server = "server"
    user = "id"
    password = "pwd"
    db = "db"
    
    conn = pyodbc.connect(
        DRIVER='{ODBC Driver 17 for SQL Server}',
        SERVER=server,
        DATABASE=db,
        UID=user,
        PWD=password
    )
    conn_m = conn.cursor()
    

    同时确认server变量格式正确:如果是命名实例,需写成服务器名\实例名;如果使用非默认端口,要加上端口号,比如服务器名,1433。

  • 排查网络与防火墙限制
    虽然B电脑直接连接MSSQL成功,但Python进程可能被防火墙拦截。检查B电脑的Windows防火墙(或第三方安全软件)是否允许Python程序访问SQL Server默认端口1433;也可在SQL Server配置管理器中,确认TCP/IP协议已启用且端口设置正确。

  • 验证账号密码的特殊字符处理
    如果密码包含@、#、$等特殊字符,字符串拼接时可能会被错误解析。关键字参数的方式可让pyodbc自动处理特殊字符,避免登录参数传递错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 08:47:19