1 回答
TA贡献1829条经验 获得超7个赞
第一个问题是连接字符串中的拼写错误:。在 Go 代码中,它应该是 .postgresql://user:user@172.20.0.1:5432/lcp?sslmode=disablepostgres://user:user@172.20.0.1:5432/lcp?sslmode=disable
我们还需要将完整的连接字符串作为第二个参数传递给 。现在,该函数返回 ,但我们需要 ,因为 pq 正在等待此前缀来解析它。sql.OpendbFromURIuser:user@172.20.0.1:5432/lcp?sslmode=disablepostgres://user:user@172.20.0.1:5432/lcp?sslmode=disable
修复此问题后,我能够根据您的代码使用最小的postgres客户端建立连接。
若要亲自尝试此操作,请使用以下命令启动服务器:
docker run --rm -p 5432:5432 -e POSTGRES_PASSWORD=some_password postgres
并尝试使用以下客户端代码进行连接:
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
func main() {
cnxn := "postgres://postgres:some_password@127.0.0.1:5432/lcp?sslmode=disable"
_, err := sql.Open("postgres", cnxn)
if err != nil {
panic(err)
}
_, err = db.Prepare("SELECT id,encryption_key,location,length,sha256,type FROM content WHERE id = ? LIMIT 1")
if err != nil {
fmt.Println("Prepare failed")
panic(err)
}
}
- 1 回答
- 0 关注
- 246 浏览
添加回答
举报