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 に答える