我致力于使用Go编写的使用PostgreSQL数据库的应用程序。我正在将该应用程序部署在Google Cloud Platform上,为此我选择了Compute Engine服务。
我创建了2个实例:一个用于运行应用程序的实例,另一个用于数据库服务器的实例。两个实例的操作系统均为Ubuntu 18.04。
当我在本地测试应用程序时,一切都按预期工作。具体来说,将应用程序与数据库连接没有问题。
当我尝试在Compute Engine上运行该应用程序时,出现此错误:
panic: dial tcp 10.132.0.4:5432: connect: connection refused
goroutine 1 [running]:
main.init.0()
/home/gauthier/gocode/sprint0/main.go:29 +0x113
exit status 2
以下是有关我的VM的信息:
-VM1(go)
内部IP:10.132.0.3
外部IP:35.205.41.152
-VM2(postgreSQL)
内部IP:10.132.0.4
外部IP:35.241.174.119
在我的应用中,我这样连接到数据库
var db *sql.DB
func init() {
var err error
db, err =sql.Open("postgres","postgres://postgres:postgres@10.132.0.4/quotes?sslmode=disable")
if err != nil {
panic(err)
}
if err = db.Ping(); err != nil {
panic(err)
}
fmt.Println("You connected to your database")
}
我在GCP文档中找不到任何可解决此问题的东西。