【问题标题】:bad HTTP response from Google CloudSQL来自 Google CloudSQL 的错误 HTTP 响应
【发布时间】: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


【解决方案1】:

我认为您的错误与 SQL 驱动程序无关。如果您阅读该消息,则它是由 http 包服务器代码引起的,而不是与您的 SQL 连接/读取/写入等有关的任何事情。查看您的代码并将其与基本示例进行比较,我相当确定您的错误是由于 main 中缺少这一行; http.ListenAndServe(":8080", nil)

基本上,将您的主要更改为

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

而且该错误可能会消失。免责声明;这并不意味着您的程序会神奇地运行,只是它永远没有它就无法运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 2015-12-13
    • 1970-01-01
    • 2014-12-01
    • 2019-12-30
    • 1970-01-01
    相关资源
    最近更新 更多