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

SQL Server连接错误20009求助:多项排查后仍无法连接数据库

排查SQL Server连接错误(20009, Adaptive Server unavailable)

错误信息

(20009, b'DB-Lib error message 20009, severity 9:

Unable to connect: Adaptive Server is unavailable or does not exist (127.0.0.1,4096)

已执行的排查操作

  • 已启用端口4096的TCP/IP
  • 尝试启用和禁用命名管道两种模式
  • 已为登录账户AA分配dbcreator服务器角色
  • 已启用远程连接

使用的连接代码

import pymssql
conn = pymssql.connect(
host=r'127.0.0.1,4096',
user=r'AA',
password=r'BBBBBBBBBBBB',
database='table'
)
cursor = conn.cursor(as_dict=True)
cursor.execute("SELECT @@version;")
row = cursor.fetchone()
while row:
print(row[0])
row = cursor.fetchone()

进一步排查与解决方向

  1. 确认SQL Server服务状态
    打开服务管理器(services.msc),检查目标SQL Server实例的服务是否处于运行状态。默认实例服务名为SQL Server (MSSQLSERVER),命名实例格式为SQL Server (实例名),若服务未启动则手动启动。

  2. 校验端口配置有效性
    打开SQL Server配置管理器:

    • 展开SQL Server网络配置 → 对应实例的TCP/IP → 右键属性 → 切换到IP地址标签页
    • 检查IPAll区域的TCP端口是否为4096,且TCP动态端口为空(动态端口会覆盖固定端口设置)
    • 修改配置后重启SQL Server服务,确保端口监听生效
  3. 测试端口连通性
    使用以下工具验证端口是否可访问:

    • 命令行执行 telnet 127.0.0.1 4096
    • PowerShell执行 Test-NetConnection 127.0.0.1 -Port 4096
      若连通失败,检查Windows Defender防火墙或第三方防火墙是否允许4096端口的入站连接,必要时添加端口放行规则。
  4. 检查账户认证与权限

    • 确认SQL Server启用混合模式认证(SQL Server和Windows身份验证模式):右键实例 → 属性 → 安全性,若仅启用Windows认证,SQL账户AA无法登录
    • 用SQL Server Management Studio直接登录账户AA,验证密码正确性、账户是否被锁定,以及是否有权限访问目标数据库
  5. 核对数据库名称
    代码中database='table'需确保数据库名称拼写完全正确,且该数据库确实存在于目标实例中(可在SSMS中确认数据库列表)

  6. 排查驱动兼容性

    • 升级pymssql到最新稳定版:pip install --upgrade pymssql
    • 尝试用pyodbc替代测试,排除pymssql驱动问题:
      import pyodbc
      conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=127.0.0.1,4096;DATABASE=table;UID=AA;PWD=BBBBBBBBBBBB')
      

内容的提问来源于stack exchange,提问作者Bittumon K B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:30:53