为了账号安全,请及时绑定邮箱和手机立即绑定

将 SQL Server 连接到 Golang gorm

将 SQL Server 连接到 Golang gorm

Go
UYOU 2023-01-03 14:16:53
顺便说一句,我是 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 服务器,它也只是继续读取本地主机。任何解决方案?谢谢 :)
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

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

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{})


查看完整回答
反对 回复 2023-01-03
  • 1 回答
  • 0 关注
  • 257 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号