我在Windows上用Postgres编写一个Go Web应用程序,我使用pq包连接到Postgres。
这是我的数据库连接函数
func ConnToDB() *sql.DB {
// load .env file
err := godotenv.Load(".env")
if err != nil {
log.Fatalf("Error loading .env file")
}
// Open the connection
db, err := sql.Open("postgres", os.Getenv("DATABASE_URL"))
if err != nil {
panic(err)
}
// check the connection
err = db.Ping()
if err != nil {
panic(err)
}
fmt.Println("Successfully connected!")
// return the connection
return db
}
我的.env变量
DATABASE_URL="postgres://postgres:pgpwd4me@localhost:5432/test?sslmode=disable"
但是当我运行这段代码时
ERROR 2022/12/18 00:23:22 server.go:3228: http: panic serving [::1]:62981: dial tcp [::1]:5432: connectex: No connection could be made because the target machine actively refused it.
1条答案
按热度按时间oxf4rvwz1#
我整理了一个小代码样本来帮助您解决问题。首先,我使用以下命令通过Docker运行Postgres:
多亏了这个命令,每个试图在端口
5432
上联系我的主机的连接都将被自动转发到我的容器的端口5432
。源代码或多或少与您共享的相同:
我能够成功地联系我的Postgres示例,所以这应该也适用于你。让我知道!