我是Golang的新手,我尝试在Golang中使用ODBC连接到Dremio,包括Dremio主机、端口、用户名和密码。
2022年4月19日17:36:42用户名和密码缺失
退出状态1
import (
"database/sql"
"fmt"
"gographqlservice/graph/model"
"log"
_ "github.com/pinpt/go-dremio/driver"
)
const (
host = "dremio.xyz.abc.com"
user = "user1"
password = "user_password"
port = 32010
)
func GetAsset(id string) (*model.Asset, error) {
drminfo := fmt.Sprintf("host=%s port=%d user=%s password=%s sslmode=disable",
host, port, user, password)
db, err := sql.Open("dremio", drminfo)
if err != nil {
log.Fatal("error occurred")
log.Fatal(err)
}
rows, err := db.Query("SELECT * FROM space.xyz.\"assets\" WHERE ASSET_ID = ?", id)
if err != nil {
log.Fatal(err)
}
var asset model.Asset
defer rows.Close()
for rows.Next() {
// some code goes here
}
err = rows.Err()
if err != nil {
log.Fatal(err)
}
defer db.Close()
return &asset, err
}
1条答案
按热度按时间ws51t4hk1#
看起来您正在使用“Pinpoint”中的驱动程序代码,该代码记录在以下位置:https://pkg.go.dev/github.com/pinpt/go-dremio#section-readme
您可以看到它们的连接字符串应采用以下形式:
您的代码格式如下:
要允许精确定位代码解析此连接字符串并提取用户名和密码,请尝试以下操作:
您看到的错误消息来自Pinpoint代码中的以下行。在这种情况下,这意味着他们无法从提供的连接字符串中找出用户名。https://github.com/pinpt/go-dremio/blob/master/driver/driver.go#L187