You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Gorm连接PostgreSQL报错:failed to configure TLS (sslmode is invalid)

问题原因及解决办法

问题原因

你的DSN连接字符串格式错误,PostgreSQL的连接参数之间需要用空格分隔,而非逗号。逗号会导致Gorm/PostgreSQL驱动无法正确解析参数,进而误判sslmode参数无效。

解决办法

将DSN中的逗号全部替换为空格即可:

func setupDb() {
    // 修正后的DSN:用空格分隔参数
    dsn := "host=localhost user=postgres password=postgres dbname=astra port=5432 sslmode=disable TimeZone=UTC"
    db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
    if err != nil {
        logger_config.ErrorLogger.Println("Couldn't connect to database")
        // 建议直接panic或返回错误,避免后续使用未初始化的db实例
        panic(err)
    }
}

额外提示

  • 确认PostgreSQL服务正在本地运行,端口5432未被占用
  • 检查postgres用户密码正确,且拥有astra数据库的访问权限
  • 若需更严谨的配置,可使用pg.Config结构体构建DSN,避免字符串拼接错误:
import "gorm.io/driver/postgres"

func setupDb() {
    config := postgres.Config{
        Host:     "localhost",
        User:     "postgres",
        Password: "postgres",
        DBName:   "astra",
        Port:     5432,
        SSLMode:  "disable",
        TimeZone: "UTC",
    }
    db, err := gorm.Open(postgres.New(config), &gorm.Config{})
    if err != nil {
        logger_config.ErrorLogger.Println("Couldn't connect to database")
        panic(err)
    }
}

内容的提问来源于stack exchange,提问作者Cross

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:47:36