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

使用pymssql连接MS SQL Server时登录时断时续问题求助

解决pymssql连接MS SQL Server间歇性登录失败问题

问题概述

使用pymssql连接MS SQL Server时出现间歇性登录失败:有时可正常连接执行查询,有时抛出登录失败异常,核心错误信息如下:

pymssql._mssql.MSSQLDatabaseException: (18456, b"Login failed for user 'sa'.DB-Lib error message 20018, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (***.***.***.***)\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (***.***.***.***)\n")

FreeTDS日志显示关键错误为msgno 18456: "Login failed for user 'sa'.",且系统无法找到FreeTDS配置文件。

排查与解决步骤

1. 补全FreeTDS配置文件

日志反复提示无法读取.freetds.conf或系统级配置文件,缺失固定配置会导致连接参数不稳定,建议手动创建:

  • 在用户主目录创建.freetds.conf,写入以下内容(替换占位符为实际信息):
[mssql_server]
        host = ***.***.***.***
        port = 1433
        tds version = 7.4
        client charset = UTF-8
        database = BlueChipDB_New
        encrypt = required
        login timeout = 30
  • 修改pymssql连接代码,使用配置文件中的服务器别名:
import pymssql
conn = pymssql.connect(server='mssql_server', user='sa', password='your_password')

2. 检查SQL Server登录限制

错误18456是SQL Server返回的登录失败信号,需在数据库端排查:

  • 确认sa账户已启用:打开SQL Server Management Studio,进入安全性 > 登录名 > sa > 属性 > 状态,确保“登录”选项为“启用”
  • 查看SQL Server错误日志:进入管理 > SQL Server日志,找到18456错误的State值,对应具体原因:
    • State 8:密码错误(若间歇性出现,排除固定密码错误,需检查是否有密码变更或缓存问题)
    • State 11/12:登录被拒绝(检查是否有IP地址限制、账户锁定)
    • State 16:默认数据库无权限(确认sa对BlueChipDB_New数据库有访问权限)
  • 检查服务器防火墙:确保1433端口未被间歇性限流或阻断

3. 调整pymssql连接参数

在连接代码中添加以下参数,提升连接稳定性:

conn = pymssql.connect(
    server='***.***.***.***',
    user='sa',
    password='your_password',
    database='BlueChipDB_New',
    login_timeout=30,
    encrypt=True,
    pool=False  # 临时禁用连接池排查问题
)

4. 排查网络稳定性

间歇性连接失败可能与网络波动有关:

  • 在客户端执行ping ***.***.***.*** -t(Windows)或ping -c 100 ***.***.***.***(Linux),检查是否有丢包
  • 使用telnet ***.***.***.*** 1433测试端口连通性,确认无间歇性断开
  • 检查服务器端的负载均衡、防火墙是否有会话超时规则

5. 升级组件版本

当前使用FreeTDS 1.3.13,建议升级到最新稳定版,同时升级pymssql到最新版本,修复已知的连接兼容性问题

内容的提问来源于stack exchange,提问作者K M Jiaul Islam Jibon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:27:02