denisenkom / go-mssqldb

Microsoft SQL server driver written in go language
BSD 3-Clause "New" or "Revised" License
1.81k stars 493 forks source link

unable to open tcp connection with host #762

Closed hajsf closed 1 year ago

hajsf commented 1 year ago

I goth the below error:

2022/07/18 10:15:38 Prepare failed:unable to open tcp connection with host 'my-server:1433': dial tcp 172.16.20.185:1433: connectex: No connection could be made because the target machine actively refused it.

Though that I did the following:

  1. Installed fresh version of MSSQL dev, first time MSSQL is installed at this machine, and confirmed it is running using sqlcm
image
  1. Installed MSSQL studio (I'm to confirm MSSQLSERVER) is connected
image
  1. At Windows definder firewall, I allowed the connection of port 1433
image
  1. At SQL server network connection -> protocols for MSSQLSERVER I enabled both Named Pipes and TCP/IP
image

The code I'm trying to test is the simple one provided in the examples:

package main

import (
    "database/sql"
    "flag"
    "fmt"
    "log"

    _ "github.com/denisenkom/go-mssqldb"
)

var (
    debug         = flag.Bool("debug", false, "enable debugging")
    password      = flag.String("password", "", "the database password")
    port     *int = flag.Int("port", 1433, "the database port")
    server        = flag.String("server", "my-server", "the database server") 
    user          = flag.String("user", "sa", "the database user")                  
)

func main() {
    flag.Parse()

    if *debug {
        fmt.Printf(" password:%s\n", *password)
        fmt.Printf(" port:%d\n", *port)
        fmt.Printf(" server:%s\n", *server)
        fmt.Printf(" user:%s\n", *user)
    }

    connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d", *server, *user, *password, *port)
    if *debug {
        fmt.Printf(" connString:%s\n", connString)
    }
    conn, err := sql.Open("mssql", connString)
    if err != nil {
        log.Fatal("Open connection failed:", err.Error())
    }
    defer conn.Close()

    stmt, err := conn.Prepare("select 1, 'abc'")
    if err != nil {
        log.Fatal("Prepare failed:", err.Error())
    }
    defer stmt.Close()

    row := stmt.QueryRow()
    var somenumber int64
    var somechars string
    err = row.Scan(&somenumber, &somechars)
    if err != nil {
        log.Fatal("Scan failed:", err.Error())
    }
    fmt.Printf("somenumber:%d\n", somenumber)
    fmt.Printf("somechars:%s\n", somechars)

    fmt.Printf("bye\n")
}
dainiauskas commented 1 year ago

Replace my-server to IP address, bug in IP address resolve from name

kardianos commented 1 year ago

This isn't an issue with the package.