使用 go 连接到 mysql 数据库

我正在尝试与我的 mysql 服务器建立基本连接,但我似乎无法让它实际连接。我知道凭证是有效的并且拥有他们需要的所有权限,但由于某种原因,他们一直被拒绝。


package main


import (

    "fmt"

    "database/sql"

    _ "github.com/go-sql-driver/mysql"

    "os"

)


func main() {

    db, err:= sql.Open("mysql", "user:pass@tcp(localhost:3306)/scf")

    if err != nil {

        fmt.Println(err)

        os.Exit(1)

    }


    q, err := db.Prepare("SELECT * from logins limit 5")

    if err != nil {

        fmt.Println(err)

        os.Exit(1)

    }


    rows, err := q.Query()

    if err != nil {

        fmt.Println(err)

        os.Exit(1)

    }


    i := 0


    for rows.Next() {

        i++

        var title string

        err = rows.Scan( &title )

        fmt.Printf("Title: %s \n", title)

    }


    db.Close()


}

编辑:


显然我忘了包括错误:


dial tcp 127.0.0.1:3306: connection refused

exit status 1


慕姐4208626
浏览 231回答 2
2回答

MYYA

connection refused通常意味着该端口未打开或被防火墙阻止。需要检查的几件事:MySQL(在本地主机上)正在运行吗?它在端口 3306 上吗?如果您使用的是 Windows、Mac 或 Linux,是否有可能阻止端口 3306 的防火墙?如果您使用的是 Linux,是否启用了可能会阻塞端口 3306 的 SELinux?

FFIVE

我遇到了类似的问题。我发现 Mac 上的端口不同。我找不到它,my.cnf但是在运行时设置了端口,您可以使用它看到ps ax | grep mysql
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go