GO 打开本地 postgres 连接

Bra*_*n S 0 database postgresql go

我的 postgres 在 Mac 本地运行,端口为 5432

它有test一个名为 的数据库,这个数据库中有一个名为test_table

我正在尝试使用 GO 连接到它。

进口:

 "database/sql"
 _ "github.com/lib/pq"
Run Code Online (Sandbox Code Playgroud)

主要的:

db, err := sql.Open("postgres", "postgres://user:@localhost:5432/test")
if err != nil {
    log.Println(err)
}
defer db.Close()

if err2 := db.Ping(); err2 != nil {
 fmt.Println("Failed to keep connection alive")
}

db.QueryRow("INSERT INTO test.test_table (name) VALUES (`something`)) RETURNING id").Scan(&id)

fmt.Println(id)
Run Code Online (Sandbox Code Playgroud)

为了测试连接,我正在运行 Ping 并尝试在 test_table 中插入一行。但它返回给我:

Failed to keep connection alive
0
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Her*_*aaf 5

在这种情况下,检查以下清单是值得的:

  • 您可以使用提供给 go 服务器的相同参数连接到服务器吗?即你能跑psql -U user -p 5432 -h localhost test吗?
  • 您是否正在打印所有错误?在问题中,err2应打印,因为它包含有关正在发生的事情的关键信息。Scan还返回一个未保存到变量或打印的错误。如果是这样,您可能已经在查询中看到了语法问题。
  • 你能在 SQL shell 中运行查询吗?( psql) 如果不是,请先修复查询,然后再继续。