如何在localhost上与mysql服务器建立连接?

问题描述 投票:0回答:1

我想在localhost上与sql server建立新的连接,这样我就可以从sql server获取数据。但在进行连接时存在一些问题。

错误: - [mysql] 2019/02/11 15:30:00 driver.go:81: net.Error from Dial()': dial tcp serverPort:3306: connect: connection timed out

而我正在使用的代码是

func ConnectMsqlDb() (db *sql.DB, err error) {
db, err = sql.Open("mysql", 
    fmt.Sprintf("%s:%s@tcp(%s:"+SqlDbPort+")/"+SqlDatabase, 
    SqlUsername, SqlPassword, SqlServerPort))
fmt.Println("OPEN", db, err)
if err != nil {
    return nil, err
}
//defer db.Close()
fmt.Println("PING:-", err)
err = db.Ping()
fmt.Println("PING:-", err)
if err != nil {
    return nil, err
}
return db, nil
}     

你能帮助我摆脱这个问题吗?

go
1个回答
0
投票

如果您尝试连接到远程服务器,则需要其完整地址:

<username>:<pw>@tcp(<HOST>:<port>)/<dbname>

在您的示例中,我没有在任何地方看到主机,因此它尝试连接到在localhost上运行的服务器(由SqlServerPort提供的端口)。

A simple connection example

func main() {
    db, err := sql.Open("mysql",
        "user:password@tcp(127.0.0.1:3306)/hello")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()
}

您需要将127.0.0.1替换为远程服务器的实际IP地址(或主机名)。

© www.soinside.com 2019 - 2024. All rights reserved.