首页 > 文章列表 > GORM连接SQL Server数据库密码包含特殊字符如何解决?

GORM连接SQL Server数据库密码包含特殊字符如何解决?

151 2025-04-10

GORM连接SQL Server数据库密码包含特殊字符如何解决?

GORM连接SQL Server数据库时,密码包含特殊字符(例如“@”)会导致连接失败。本文提供一种可靠的解决方案,避免直接拼接连接字符串,从而解决此问题。

问题:

当使用类似以下连接字符串时,GORM无法正确解析包含特殊字符的密码:

sqlserver://xiangyi:xiayi3601@@49.294.216.37:1433?database=xydb

解决方案:

推荐使用fmt.Sprintf函数构建连接字符串,将用户名、密码、服务器地址等参数分别传入,避免特殊字符干扰:

import (
    "fmt"
    "gorm.io/driver/sqlserver"
    "gorm.io/gorm"
)

func main() {
    server := "49.294.216.37"
    user := "xiangyi"
    password := "xiayi3601@@"
    port := 1433
    database := "xydb"

    connectionString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s", server, user, password, port, database)
    db, err := gorm.Open(sqlserver.Open(connectionString), &gorm.Config{})
    if err != nil {
        panic(err)
    }
    defer db.Close()

    // ... your database operations ...
}

通过这种方法,可以有效防止特殊字符导致的连接错误,确保GORM能够正确连接到SQL Server数据库。 请注意替换示例中的参数为您的实际数据库信息。 代码中添加了必要的import语句和错误处理。

来源:1741119504