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
相关产品推荐
相关产品推荐

