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

无需ODBC驱动,如何用Python连接MSSQL数据库?

使用JDBC实现Python与MSSQL数据库的连接

可以通过JDBC实现Python与MSSQL的连接,需要借助jaydebeapi库来桥接Python和JDBC驱动。你遇到的pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')错误,本质是ODBC驱动管理器找不到指定的数据源名,也无可用默认驱动,通常是未安装适配版本的MSSQL ODBC驱动或DSN配置有误,换JDBC是可行的替代方案。

具体实现步骤:

  • 准备JDBC驱动:下载与你的MSSQL服务器版本兼容的mssql-jdbc-*.jar驱动文件。
  • 安装依赖库:通过pip安装jaydebeapi,命令如下:
    pip install jaydebeapi
    
  • 编写连接代码:
    import jaydebeapi
    
    # 配置连接参数
    DRIVER_CLASS = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    JDBC_URL = "jdbc:sqlserver://<服务器地址>:<端口>;databaseName=<数据库名>;encrypt=true;trustServerCertificate=true"
    USERNAME = "<你的用户名>"
    PASSWORD = "<你的密码>"
    JAR_PATH = "/path/to/mssql-jdbc-xxx.jar"  # 替换为实际的驱动jar文件路径
    
    # 建立连接
    conn = jaydebeapi.connect(
        DRIVER_CLASS,
        JDBC_URL,
        [USERNAME, PASSWORD],
        JAR_PATH
    )
    
    # 测试连接
    cursor = conn.cursor()
    cursor.execute("SELECT @@VERSION")
    print("数据库版本:", cursor.fetchone()[0])
    
    # 关闭资源
    cursor.close()
    conn.close()
    

注意事项:

  • 确保JDBC驱动版本与MSSQL服务器版本兼容,比如SQL Server 2019建议使用mssql-jdbc 8.4及以上版本。
  • 若服务器要求加密连接,需根据实际情况调整JDBC_URL中的encrypt和trustServerCertificate参数(例如不需要证书验证时设trustServerCertificate=true)。
  • 务必填写正确的jar文件路径,否则会出现驱动类找不到的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 22:42:07