我正在Go和PostgreSQL中使用两台不同的计算机创建Web应用程序。两台电脑上的设置都是一样的(Ubuntu和Go和PostgreSQL的最新版本)。问题是我无法让我的应用程序连接到笔记本电脑上的数据库。通过pq(Go)连接到PostgreSQL数据库会返回一个“错误的连接”错误
我使用这段代码:
func (db *Database) Dial(user string, password string, dbname string) {
var err error
db.Conn, err = sql.Open("postgres", "user="+user+" password="+password+" dbname="+dbname+" sslmode=require")
if err != nil {
fmt.Println("Connection to " + dbname + " not possible!")
log.Fatal(err)
}
err = db.Conn.Ping()
if err != nil {
fmt.Println("Ping to " + dbname + " not possible!")
fmt.Println(err)
}
}
我也得到:
坪MY_DATABASE不可能的!
司机:不好的连接
我发现了同样的错误如此多的问题,但我没有发现任何解决方案,能够解决我的情况。
此外,在我的笔记本电脑,就像我的台式电脑上,有用户Postgres的,我可以通过PSQL连接到数据库,所以守护进程被激活,密码是正确的。我在两台计算机上使用完全相同的设置和代码。
我的问题是:如何获得有关错误的更多信息?我觉得“不好的联系”太模糊了。我相信多一点的信息会对我有很大的帮助。
另外,你有一个想法会导致错误?
更新
PostgreSQL的日志中这样说:
2014年9月29日14点23分26秒EDT FATAL:密码验证失败的用户 “Postgres的”
2014- 09-29 14:23:26 EDT详情:连接匹配pg_hba.conf第92行:“host all all 127.0.0.1/32 md5”
但我仔细检查了密码,它应该很好。我也可以登录为posgres用户,运行psql命令并执行查询。
如果你设置sslmode = disable,会发生什么? – 2014-09-29 16:49:25
显示完全相同的错误。 – 2014-09-29 17:05:05
有没有什么有用的postgres日志中出现? – urandom 2014-09-29 18:18:59