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 关注
- 78 浏览
添加回答
举报
0/150
提交
取消