本文解析 go 应用中因遗漏 `http.listenandserve` 导致的“bad http response”错误,并纠正 cloud sql 连接写法,帮助开发者区分 http 服务启动与数据库连接两类关键问题。
在使用 Go 部署 Web 服务并连接 Google Cloud SQL 时,初学者常将 HTTP 服务器未启动误判为数据库驱动异常。你遇到的错误:
the runtime process gave a bad HTTP response: '' ... net/http.func·011() ... panic serving 127.0.0.1:50091: Default addr for network '173.194.106.126:3306' unknown
并非来自 MySQL 驱动或 Cloud SQL 配置问题,而是 Go 的 net/http 包在没有调用 http.ListenAndServe 的情况下,试图响应请求时触发的底层 panic —— 此时 HTTP 服务器根本未启动,所有入站请求(如本地 curl http://localhost:8080/)都会导致运行时崩溃。