我编写了一个系统,该系统可以自动执行在 Microsoft Azure 上部署 VM 的过程,在其上安装 Sql Server,然后.sql针对新安装的服务器执行脚本以初始化环境。周五,这一切都按预期进行。今天,我收到此错误。我的代码有以下相关导入:import( "database/sql" _ "github.com/denisenkom/go-mssqldb")并在安装后使用以下代码实际连接到数据库(为简洁起见,删除了错误处理):// 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) // <--------}该错误发生在两个db.Ping()和每个 上db.Exec()。在这些情况下,关联的消息err是TLS Handshake failed: Cannot read handshake packet: EOF这可能是相关的,但我不知道如何。造成这种情况的原因是什么?如何解决?错误是在我的代码中、在我创建的充当服务器的虚拟机上还是在两者之间?我该如何最好地解决这个问题?
1 回答
翻翻过去那场雪
TA贡献2065条经验 获得超13个赞
我最终解决了这个问题,但没有找出根本原因。当我尝试通过 SSH 连接到虚拟机并在本地访问数据库时,我遇到了以下错误:
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 关注
- 295 浏览
添加回答
举报
0/150
提交
取消