我正在尝试将我的golang程序连接到使用docker在容器上运行的mssql服务器。戈朗号也在码头集装箱上运行。go脚本似乎能够成功连接到数据库,但无法对其执行任何操作。所以,
db, err := sql.Open("mysql","SA:YourStrong!Passw0rd@tcp(127.0.0.1:1433)/")
if err != nil {
panic(err)
}
defer db.Close()
fmt.Println("Success open database")
这会打印出“success open database”,但是代码的下一部分会引发恐慌,
_,err = db.Exec("CREATE DATABASE currency1")
if err != nil {
panic(err)
}
fmt.Println("Success CREATE database")
在使用Docker构建和运行它之后,这就是我得到的
GO MYSQL START
Success open database
panic: dial tcp 127.0.0.1:1433: getsockopt: connection refused
这是我用来运行
mssql
数据库:
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=YourStrong!Passw0rd' -e 'MSSQL_PID=Express' -p 1433:1433 --name sql1 -d microsoft/mssql-server-linux:latest