sql.Open()不會出錯:if db, err = sql.Open("postgres", url); err != nil { return nil, fmt.Errorf("Postgres connect error : (%v)", err)}但db.Ping()會報錯:if err = db.Ping(); err != nil { return nil, fmt.Errorf("Postgres ping error : (%v)", err)}這只是因為 lib/pq 連接字符串無法從具有單獨連接參數的 docker 容器內進行連接。例如:url := fmt.Sprintf("user=%v password=%v host=%v port=%v dbname=%v", rs.conf.Redshift.User, rs.conf.Redshift.Password, rs.conf.Redshift.Host, rs.conf.Redshift.Port, rs.conf.Redshift.DB)
1 回答

眼眸繁星
TA貢獻1873條經驗 獲得超9個贊
使用連接字符串作為 URL 有效:
????url?:=?fmt.Sprintf("postgres://%v:%v@%v:%v/%v?sslmode=disable", ????????pql.conf.Postgres.User, ????????pql.conf.Postgres.Password, ????????pql.conf.Postgres.Host, ????????pql.conf.Postgres.Port, ????????pql.conf.Postgres.DB)
- 1 回答
- 0 關注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消