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

Python连接SQL Server数据库失败求助(附代码及报错信息)

解决Python pyodbc连接SQL Server失败的问题

先修正代码里的明显错误

你的连接字符串给参数值加了不必要的单引号,这是pyodbc不支持的写法,同时服务器名称的转义可以优化。先调整连接代码:

# 修正后的数据库连接代码
server = r"MAURICE-PC\CLOCKIFY"  # 用原始字符串避免转义问题
username = "sa"
password = "clockify"
database = "master"
# 移除所有参数值的单引号,改用更兼容的新版ODBC驱动
connection = pyodbc.connect(f"DRIVER={{ODBC Driver 17 for SQL Server}};SERVER={server};DATABASE={database};UID={username};PWD={password}")
cursor = connection.cursor()

再排查其他潜在问题

  • 确认SQL Server实例的端口配置
    打开SQL Server配置管理器,找到CLOCKIFY实例的TCP/IP协议:

    1. 右键TCP/IP → 属性 → 切换到「IP地址」标签
    2. 拉到最下方的「IPAll」区域,查看TCP端口(如果是动态端口,会显示「TCP动态端口」,需要把这个端口号加到连接字符串里,格式为SERVER=MAURICE-PC\CLOCKIFY,端口号)
    3. 用命令Test-NetConnection MAURICE-PC -Port 端口号测试端口是否能正常连通
  • 检查sa账户与身份验证模式

    1. 打开SSMS,右键服务器 → 属性 → 安全性,确认勾选「SQL Server和Windows身份验证模式」
    2. 展开「安全性」→ 登录名 → 右键sa → 属性,确认账户未被禁用,且密码与代码中一致
    3. 右键master数据库 → 属性 → 权限,确保sa账户拥有该数据库的访问权限
  • 更新ODBC驱动版本
    你当前使用的{SQL Server}是旧版驱动,对新SQL Server版本兼容性较差,建议安装ODBC Driver 17 for SQL Server,并在连接字符串中使用该驱动名称

最后验证步骤

先在SSMS中用sa账户登录MAURICE-PC\CLOCKIFY实例,确认能正常访问master数据库,再运行修正后的Python代码测试连接。

内容的提问来源于stack exchange,提问作者maui-b

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:52:48