Я работаю над приложением, написанным на 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
Вот некоторая информация о моих виртуальных машинах:
-VM1 (перейти)
Внутренний 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, которая исправляет эту проблему.