我編寫了一個系統(tǒng),該系統(tǒng)可以自動執(zhí)行在 Microsoft Azure 上部署 VM 的過程,在其上安裝 Sql Server,然后.sql針對新安裝的服務器執(zhí)行腳本以初始化環(huán)境。周五,這一切都按預期進行。今天,我收到此錯誤。我的代碼有以下相關導入:import( "database/sql" _ "github.com/denisenkom/go-mssqldb")并在安裝后使用以下代碼實際連接到數(shù)據(jù)庫(為簡潔起見,刪除了錯誤處理):// variablesconnectionString := "sqlserver://MasterUser:MasterPassword@xx.xx.xx.xxx:1433"dbName := "mssql"// open database / get metadata sorteddb, err := sql.Open(dbname, connectionString)defer db.Close()//Check to see if the connection is successful. err = db.Ping() // <--------// file inputfileBytes, err := ioutil.ReadFile("../sql/" + dbsql)fileReader := bytes.NewReader(fileBytes)// parse line-by-linescanner := bufio.NewScanner(fileReader)lineNo := 0for scanner.Scan() { toExec := scanner.Text() lineNo += 1 _, err = db.Exec(toExec) // <--------}該錯誤發(fā)生在兩個db.Ping()和每個 上db.Exec()。在這些情況下,關聯(lián)的消息err是TLS Handshake failed: Cannot read handshake packet: EOF這可能是相關的,但我不知道如何。造成這種情況的原因是什么?如何解決?錯誤是在我的代碼中、在我創(chuàng)建的充當服務器的虛擬機上還是在兩者之間?我該如何最好地解決這個問題?
1 回答

翻翻過去那場雪
TA貢獻2065條經(jīng)驗 獲得超14個贊
我最終解決了這個問題,但沒有找出根本原因。當我嘗試通過 SSH 連接到虛擬機并在本地訪問數(shù)據(jù)庫時,我遇到了以下錯誤:
Sqlcmd:?Error:?Microsoft?ODBC?Driver?17?for?SQL?Server?:?TCP?Provider:?Error?code?0x2746. Sqlcmd:?Error:?Microsoft?ODBC?Driver?17?for?SQL?Server?:?Client?unable?to?establish?connection.
它看起來是一個版本控制問題 - 在我的安裝腳本中,我替換了
sudo?apt-get?-y?install?mssql-server
和
sudo?apt-get?-y?install?mssql-server=14.0.3192.2-2
然后問題就消失了。
- 1 回答
- 0 關注
- 406 瀏覽
添加回答
舉報
0/150
提交
取消