为了账号安全,请及时绑定邮箱和手机立即绑定

仅当 ECS 时无法在 Golang 中连接 RDS mysql

仅当 ECS 时无法在 Golang 中连接 RDS mysql

Go
吃鸡游戏 2023-07-26 13:10:10
我尝试在 ECS 中午餐应用程序。在我本地的docker环境中吃午饭是没有问题的。但是由于rds连接问题,无法访问ECS中的api服务器。我在 api 服务器中使用 golang,在 db 中使用 mysql。我在 main.go 中调用db.gofunc main() {    db := db.NewDatabase(os.Getenv("MYSQL_USER"), os.Getenv("MYSQL_PASSWORD"), os.Getenv("MYSQL_HOST"))连接rds数据库时出现错误func NewDatabase(user, password, host string) *Database {    db, err := sql.Open("mysql", user+":"+password+"@tcp("+host+":3306)/article")    if err != nil {        panic(err.Error())    }    err = db.Ping()    // error occurs here    if err != nil {        panic(err.Error())    }我将它部署到弹性豆茎上。我检查了环境变量是否设置正确。这是完整的源代码: https://github.com/jpskgc/article我预计弹豆不会有错误。但实际情况并非如此。我想知道解决方案。这是elastic beanstalk中的错误日志。-------------------------------------/var/log/containers/server-4c66c8d1848a-stdouterr.log-------------------------------------panic: dial tcp 172.31.26.91:3306: connect: connection timed outgoroutine 1 [running]:article/api/db.NewDatabase(0xc00002401b, 0x4, 0xc00002a00f, 0xb, 0xc00002800b, 0x3c, 0xdb94f2)    /app/db/db.go:20 +0x3bcmain.main()    /app/main.go:18 +0xee
查看完整描述

1 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

“连接超时”说明有防火墙限制,你也可以检查一下你的mysql白名单,里面应该有你的ECS的ip。



查看完整回答
反对 回复 2023-07-26
  • 1 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信