6

我正在尝试与我的 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
4

2 回答 2

3

connection refused通常意味着端口未打开或被防火墙阻止。有几件事要检查:

  • MySQL(在本地主机上)是否正在运行?它在端口 3306 上吗?
  • 如果您使用的是 Windows、Mac 或 Linux,是否有可能阻止端口 3306 的防火墙?
  • 如果您使用的是 Linux,是否启用了可能阻止端口 3306 的 SELinux?
于 2013-09-12T14:58:53.253 回答
0

我遇到了类似的问题。我发现 Mac 上的端口不同。我找不到它,my.cnf但端口是在运行时设置的,你可以看到使用

ps ax | grep mysql
于 2017-10-26T15:37:00.300 回答