我编写了一个系统,该系统可以自动执行在 Microsoft Azure 上部署 VM 的过程,在其上安装 Sql Server,然后.sql针对新安装的服务器执行脚本以初始化环境。周五,这一切都按预期进行。今天,我收到此错误。
我的代码有以下相关导入:
import(
"database/sql"
_ "github.com/denisenkom/go-mssqldb"
)
并在安装后使用以下代码实际连接到数据库(为简洁起见,删除了错误处理):
// variables
connectionString := "sqlserver://MasterUser:MasterPassword@xx.xx.xx.xxx:1433"
dbName := "mssql"
// open database / get metadata sorted
db, err := sql.Open(dbname, connectionString)
defer db.Close()
//Check to see if the connection is successful.
err = db.Ping() // <--------
// file input
fileBytes, err := ioutil.ReadFile("../sql/" + dbsql)
fileReader := bytes.NewReader(fileBytes)
// parse line-by-line
scanner := bufio.NewScanner(fileReader)
lineNo := 0
for scanner.Scan() {
toExec := scanner.Text()
lineNo += 1
_, err = db.Exec(toExec) // <--------
}
该错误发生在两个db.Ping()和每个 上db.Exec()。在这些情况下,关联的消息err是
TLS Handshake failed: Cannot read handshake packet: EOF
这可能是相关的,但我不知道如何。
造成这种情况的原因是什么?如何解决?错误是在我的代码中、在我创建的充当服务器的虚拟机上还是在两者之间?我该如何最好地解决这个问题?
翻翻过去那场雪
相关分类