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

Docker部署的DB2实例无法通过Golang连接:ODBC驱动未识别问题求助

Docker部署的DB2实例无法通过Golang连接:ODBC驱动未识别问题求助

我在Docker容器里部署了一个DB2实例,现在想在Windows 11 x64系统上用简单的Golang程序连接它,但碰到了这个报错:

Error connecting to database: failed to ping database: SQLDriverConnect: {IM002} [Microsoft][Driver Manager ODBC] Datasource name not found and default driver not specified.

我已经尝试下载了IBM的DB2 ODBC/CLI驱动,解压安装到C:/Program Files目录后,把驱动路径添加到了系统PATH环境变量里,还重启了电脑,但在「ODBC Data Source Administrator」的驱动列表里还是找不到这个驱动。

以下是我的数据库连接代码:

import (
"database/sql"
"fmt"
_ "github.com/alexbrainman/odbc"
)

func ConnectDB() (*sql.DB, error) {
    connStr :=     "DATABASE=TEST1;HOSTNAME=localhost;PORT=50000;PROTOCOL=TCPIP;UID=db2inst1;PWD=db2inst1;"

    db, err := sql.Open("odbc", connStr)
    if err != nil {
    return nil, fmt.Errorf("failed to open database: %v", err)
}

    if err = db.Ping(); err != nil {
    return nil, fmt.Errorf("failed to ping database: %v", err)
}

    fmt.Println("Connected to DB2 database!")
    return db, nil
}

还有main.go的代码:

import (
"database/sql"
"go-db-check/db"
"log"
)

func main() {
    database, err := db.ConnectDB()
    if err != nil {
    log.Fatalf("Error connecting to database: %v", err)
}
    defer func(database *sql.DB) {
    closeErr := database.Close()
    if closeErr != nil {
        log.Println("Error during connection shutdown: ", err)
    }
}(database)
}

备注:内容来源于stack exchange,提问作者GreatTeacherNullPointer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 08:57:57