順便說一句,我是 Golang 的新手。當(dāng)我嘗試將 gorm 連接到遠(yuǎn)程 SQL Server 數(shù)據(jù)庫時(shí),我感到很困惑。在 .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" />當(dāng)我嘗試連接到 gorm 時(shí),我是這樣嘗試的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()}我得到了錯(cuò)誤:[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.恐慌:連接到數(shù)據(jù)庫時(shí)出錯(cuò)順便說一句,我在這個(gè)問題中沒有使用真實(shí)的 URL。即使我已經(jīng)聲明了 sqlserver 數(shù)據(jù)庫的 url 服務(wù)器,它也只是繼續(xù)讀取本地主機(jī)。任何解決方案?謝謝 :)
1 回答

滄海一幻覺
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
我可以看到一些問題(文檔是一個(gè)很好的起點(diǎn)):
DSN 字符串
sqlserver://user_log:dhhdf127ihd@http://11.111.1.111?database=Database_Log
不是有效的 DSN(刪除http://
)。
網(wǎng)址編碼
url.QueryEscape("sqlserver://user_log:dhhdf127ihd@http://11.111.1.111?database=Database_Log")
回報(bào)sqlserver%3A%2F%2Fuser_log%3Adhhdf127ihd%40http%3A%2F%2F11.111.1.111%3Fdatabase%3DDatabase_Log
。
這不是一個(gè)有效的 URL,并且不會(huì)被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{})
- 1 回答
- 0 關(guān)注
- 290 瀏覽
添加回答
舉報(bào)
0/150
提交
取消