我正在使用 Golang 制作 API,并使用 Postgres 作为数据库。我使用了以下命令:-
args := "host=" + host + " port=" + port + " dbName=" + dbName + "username=" + username + " sslmode=disable password=" + password
db, err := gorm.Open("postgres", args)
if err != nil {
log.Fatal(err)
}
db.AutoMigrate(models.Hospital{})
DB = db
但是当我构建模型时,我得到的错误是:-
pq:用户“Ansh Joshi”的密码验证失败
虽然当我尝试在 pgAdmin 中使用相同的密码登录时,我能够完美地登录。然后我无法理解的是为什么我在使用 vscode 时无法连接它。
任何帮助将不胜感激。提前谢谢你...
最佳答案
我不确定您打开与 gorm 连接的代码是否正确。
文档中是这样写的
dsn := "host=localhost user=gorm password=gorm dbname=gorm port=9920 sslmode=disable TimeZone=Asia/Shanghai"
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
我建议您将 dsn
设置为 fmt.Sprintf
以提高可读性。
因为你的user有空间
,你应该在开始和结束user
中添加'
这是例子:
args := fmt.Sprintf("host=%s port=%s dbname=%s user='%s' password=%s sslmode=%s", host, port, dbName, username, password, sslmode)
fmt.Println(args)
db, err := gorm.Open(postgres.Open(args), nil)
if err != nil {
log.Fatal(err)
}
关于postgresql - pq : password authentication failed for user "user-name" while accessing postgres in vscode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71287725/