我有以下连接字符串
postgres://postgres:pw123@localhost:5432/mydb?sslmode=disable
字符串
当我尝试使用docker compose连接到数据库时,这很好用:
docker-compose exec postgresql psql "postgres://postgres:pw123@localhost:5432/mydb?sslmode=disable"
型
我连接并可以查询数据库。
当我尝试使用它与sqlx我得到一个错误。
db, err := sqlx.Connect("postgres", "postgres://postgres:pw123@localhost:5432/mydb?sslmode=disable")
型
我得到这个错误:
pq:用户“postgres”的密码验证失败
有人知道为什么我可能会从我的sqlx得到这个,当同样的creds对docker compose工作正常时?
编辑:我尝试更改为使用连接字符串,这是首选的方法,但我仍然有同样的问题:
args := fmt.Sprintf("host=%s port=%s dbname=%s user=%s password=%s sslmode=%s", "localhost", "5432", "mydb", "postgres", "pw123", "disable")
db, err := sqlx.Connect("postgres", args)
型
1条答案
按热度按时间dnph8jn41#
下面是
pg_hba.conf
文件:https://www.postgresql.org/docs/current/auth-pg-hba-conf.html
https://askubuntu.com/questions/256534/how-do-i-find-the-path-to-pg-hba-conf-from-the-shell的
有很多
[auth-options]
和trust
是一个完全开放的。听起来你的auth-option对docker-compose有效,但对sqlx无效。尝试将它们全部更改为信任并重新启动postgres。如果这样做有效,然后返回并将它们更改为您想要的身份验证级别。