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
相关产品推荐
相关产品推荐

