繁体   English   中英

将 SQL Server 连接到 Golang gorm

[英]Connecting SQL Server to Golang gorm

顺便说一句,我是 Golang 的新手。 当我尝试将 gorm 连接到远程 SQL Server 数据库时,我感到很困惑。

在 .NET 中,我通常将其用于 web.config

<add name="DevSaveLog" connectionString="Data Source=11.111.1.111;Network Library=DBMSSOCN;Initial Catalog=Database_Log;User ID=user_log;Password=dhhdf127ihd" providerName="System.Data.SqlClient" />

当我尝试连接到gorm时,我尝试过这样

func Init() {
dsn := url.QueryEscape("sqlserver://user_log:dhhdf127ihd@http://11.111.1.111?database=Database_Log")
db, err := gorm.Open(sqlserver.Open(dsn), &gorm.Config{})
if err != nil {
    panic("error connecting to database")
}
db.AutoMigrate()

}

我得到了错误:

[error] failed to initialize database, got error unable to open tcp connection with host 'localhost:1433': dial tcp 127.0.0.1:1433: connectex: No connection could be made because the target machine actively refused it.

恐慌:连接到数据库时出错

顺便说一句,我在这个问题中没有使用真实的 URL。即使我已经声明了 sqlserver 数据库的 url 服务器,它也只是继续读取 localhost。

有什么解决办法吗?

谢谢 :)

我可以看到一些问题(文档是一个很好的起点):

DSN 字符串

sqlserver://user_log:dhhdf127ihd@http://11.111.1.111?database=Database_Log不是有效的 DSN(删除http:// )。

网址编码

url.QueryEscape("sqlserver://user_log:dhhdf127ihd@http://11.111.1.111?database=Database_Log")返回sqlserver%3A%2F%2Fuser_log%3Adhhdf127ihd%40http%3A%2F%2F11.111.1.111%3Fdatabase%3DDatabase_Log

这不是一个有效的 URL,不会被github.com/denisenkom/go-mssqldb正确处理,它会寻找sqlserver://的前缀。 删除url.QueryEscape

总之尝试类似:

dsn := "sqlserver://user_log:dhhdf127ihd@11.111.1.111?database=Database_Log"
db, err := gorm.Open(sqlserver.Open(dsn), &gorm.Config{})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM