【发布时间】:2015-04-12 09:33:03
【问题描述】:
我正在使用 go-sql-driver 尝试使用 Google Cloud SQL。我被困在这里,我不知道这里出了什么问题。这个错误对我来说是完全未知的。
package hello
import (
"fmt"
"net/http"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func init() {
http.HandleFunc("/", handler)
}
func handler(w http.ResponseWriter, r *http.Request) {
const dbUserName = "userName"
const dbPassword = "password"
const dbIP = "123.123.231.123"
db, err := sql.Open("mysql", dbUserName+":"+dbPassword+"@"+dbIP+":3306/user")
if err != nil {
panic(err.Error())
}
// Query the name
rows, err := db.Query("SELECT * FROM user")
if err != nil {
panic(err.Error())
}
fmt.Println(rows)
defer db.Close()
}
错误:
the runtime process gave a bad HTTP response: ''
2015/04/12 09:23:36 http: panic serving 127.0.0.1:50091: Default addr for network '173.194.106.126:3306' unknown
goroutine 6 [running]:
net/http.func·011()
/private/var/folders/00/0v42r000h01000cxqpysvccm003chb/T/appengine/go_appengine/goroot/src/net/http/server.go:1130 +0xbb
main37089.handler(0x5ad1e0, 0xc208044280, 0xc2080331e0)
任何想法。看看 go-sql-driver 的源码,也许我应该设置一个默认地址?
【问题讨论】:
-
在DSN中添加tcp协议会怎样?例如用户:pass@tcp(123.123.123.123:3306)/dbname ?如果不指定 dbname 会怎样?
-
你不需要
cloudsql:instance-name*...来暴露数据库的访问权限吗?阅读this,它可能会有用。 -
@Anzel 我也试过这样做。它不适用于开发人员,即我的本地人。当我将它上传到应用引擎时它可以工作。
-
@cflewis with protocol 它说连接不好。
-
@user2215912,我记得在 cloudsql 上您可能需要将您的 IP 列入白名单(因此您需要包括您的本地开发 IP),否则连接将被拒绝。
标签: mysql go google-cloud-sql