【发布时间】:2020-01-01 22:41:46
【问题描述】:
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)
【问题讨论】:
-
FWIW,您不必结束您的问题,我们并不是要说您做错了,但我是说您所描述的不是一种有效的调试技术.如果你愿意,可以进入the chat。请在看到此评论后将其标记为“不再需要”,以保持此问答的整洁。
-
@Shepmaster,我现在在这里:meta.stackoverflow.com/questions/334761/…我现在的运气是????
-
很奇怪。看起来你有一些奇怪的残留帐户chat.stackoverflow.com/users/244193/mikeumus
标签: postgresql docker go kubernetes docker-compose