【发布时间】:2013-05-21 16:00:10
【问题描述】:
我对使用 go 比较陌生,并且在连接到外部 mysql 数据库时遇到问题。 我正在使用 go-sql-driver ,它的接缝相当不错。欢迎向其他司机提出建议!
这是整个程序:
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
"fmt"
)
const (
DB_HOST = "tcp(http://thedburl.com)"
DB_NAME = "nameofdatabase"
DB_USER = "username"
DB_PW = "password"
)
func main() {
dsn := DB_USER + ":" + DB_PW + "@" + DB_HOST + "/" + DB_NAME + "?charset=uf8"
db, err := sql.Open("mysql", dsn)
if err != nil {
fmt.Println("shiiet didn't work yo! Initialization failed")
}
defer db.Close() // go's purty cool
var str string
q := "SELECT * FROM forums"
err = db.QueryRow(q).Scan(&str)
if err != nil {
fmt.Println(err)
}
fmt.Println(str)
}
根据请求,我收到以下错误
"GetAddrInfoW: The specified class was not found."
有什么想法吗?我在网上坐了几个小时,似乎无法解决问题。 可能值得注意的是,我在 java 中多次使用相同的数据库服务。
【问题讨论】:
-
你是怎么安装驱动的?使用
go get?你用的是 Go1.1 吗? -
是的,通过 go get 提示,我正在使用 Go 1.1 :) 这对我来说是一个疯狂的谜......!
-
我要解决的是驱动程序问题。我似乎找不到问题所在。当我调用“go get github.com/go-sql-driver/mysql”时,我得到一个加载时间,但没有响应。 Go list 也出现了问题,给了我一个奇怪的结果。
-
“按要求”是什么意思?另外,这个“tcp(thedburl.com)”真的是你代码中的样子吗?在这种情况下,去掉“http”位。
-
http://在数据库 URL 中做了什么?tcp传输的 MySQL URL 采用hostname_or_ip[:port]的形式。