【问题标题】:Can't reach mysql server with Node.js & AWS EC2无法使用 Node.js 和 AWS EC2 访问 mysql 服务器
【发布时间】:2021-06-11 19:42:10
【问题描述】:

我没有使用 AWS RDS,只使用 AWS EC2。

我将数据上传到 AWS EC2 Ubuntu 20.04 上的 MySQL 服务器的 3306 端口。

另外,在那个 ubuntu 上,我正在端口 3000 上运行我的 Node.js Web 服务器。

但是,Web 服务器无法访问 MySQL 服务器。 他们总是说

err :  { Error: connect ECONNREFUSED 127.0.0.1:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)

上图是我现在的入站规则。

我使用一些查询检查了我的数据是否在 MySQL 服务器中...

还有什么可以做的吗?

如果您需要有关我的设置或其他内容的更多信息,请告诉我。

【问题讨论】:

  • 你有 ms mql 和 nodejs 在同一个 EC2 实例中运行?
  • 如果您的 MySQL 与您的应用程序位于本地主机上,则安全组无关紧要。您可以使用mysql cli 连接到您的数据库吗?
  • 是的,我在同一个 EC2 实例中同时运行 mql 和 nodejs。

标签: mysql node.js amazon-web-services amazon-ec2


【解决方案1】:

也许以下步骤可以帮助您解决此问题:

  • 确保它首先在 MySQL docker 容器上本地运行:创建数据库名称,在 MySQL 中具有足够权限的用户,使用用户名、密码、URL、端口和其他选项连接到它。
  • 记录这些步骤并在 ec2 上尝试完全相同的步骤,我看到您已经暴露了 3306 端口,这很好。顺便提一句。我会先尝试heroku with node,因为有更多关于 Heroku CL 和cleardb 的文档,这是 MySQL 的插件,它是免费的 :)
  • 顺便说一句。通常数据库应该放在私有子网中,并且只能通过 nat-i​​nstance / nat-gateway 允许访问,因此只允许来自公共子网的请求,但数据库仍然可以通过 nat 下载补丁,只是为了保持牢记最佳实践;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    相关资源
    最近更新 更多