Golang无法从主机上的Sql Server浏览器获取实例

时间:2019-06-02 12:44:22

标签: sql-server go

我无法提供Mssql连接。怎么了?

无法从主机DESKTOP-A上的Sql Server Browser获取实例:读取udp [8c32%vEthernet(默认开关)]:55199-> [8c32%vEthernet(默认开关)]:1434:I / O超时


import (
    "database/sql"
    "flag"
    "fmt"
    _ "github.com/denisenkom/go-mssqldb"
)

func main() {
    var (
        userid   = flag.String("U", "loginx", "login_id")
        password = flag.String("P", "1", "password")
        server   = flag.String("S", "DESKTOP-A\\SQLEXPRESS", "server_name[\\instance_name]")
        database = flag.String("d", "test", "db_name")
    )
    flag.Parse()

    dsn := "server=" + *server + ";user id=" + *userid + ";password=" + *password + ";database=" + *database
    db, err := sql.Open("mssql", dsn)
    if err != nil {
        fmt.Println("Cannot connect: ", err.Error())
        return
    }
    err = db.Ping()
    if err != nil {
        fmt.Println("Cannot connect: ", err.Error())
        return
    }
    defer db.Close()
}

2 个答案:

答案 0 :(得分:0)

您可以将sqlserver://user:pass@host:1433/instance?database=dbname用作DSN。

答案 1 :(得分:0)

我想指出 Go 驱动程序使用的默认端口是 1434,这是 SQLServer 的 UDP 端口。但是,根据我的经验,默认情况下,服务器本身几乎从不使用该端口。因此,通过提供默认 TCP 端口 1433,它可以为我工作。