如何使用Gorm连接PostgreSQL?解决postgres用户密码认证失败问题
排查Gorm连接PostgreSQL时的"password authentication failed"错误
针对你遇到的FATAL: password authentication failed for user "postgres" (SQLSTATE 28P01)错误,结合你的代码,主要排查方向如下:
- DSN未包含密码参数
你的代码里的DSN字符串缺少密码字段,PostgreSQL默认要求postgres用户通过密码认证。修改DSN,补充password参数:
dsn := "host=localhost user=postgres password=你的实际密码 dbname=postgres port=5432 sslmode=disable TimeZone=Asia/Tokyo"
- 验证密码正确性
用PostgreSQL自带的psql工具直接测试连接,确认密码是否有效:
psql -U postgres -d postgres -h localhost -p 5432
输入密码后如果无法进入数据库,说明密码错误,需要重置postgres用户密码。
- 检查PostgreSQL认证配置
找到PostgreSQL的pg_hba.conf配置文件(路径因系统而异:Linux通常在/var/lib/postgresql/{版本号}/main/,Windows在安装目录的data文件夹),查看本地连接的认证规则:
确保针对
127.0.0.1/32或::1/128的连接,认证方式为md5或scram-sha-256,而非peer或ident(这两种依赖系统用户认证,不使用密码)
修改配置后,重启PostgreSQL服务使更改生效。
- 确认服务状态与端口占用
检查PostgreSQL服务是否正常运行,同时确保5432端口未被其他程序占用。
内容的提问来源于stack exchange,提问作者assa
相关产品推荐
相关产品推荐

