我有一台安装了 Ubuntu 的 EC2 机器。在这台机器上,我安装了 Node.js、MongoDB 和 Github 版本的 Parse Server。
我创建了一个名为 euro 的数据库。在这个数据库中,我使用以下代码创建了一个用户:
> use euro
switched to db euro
> db.createUser(
... {
... user: 'username',
... pwd: 'password',
... roles: [ { role: 'readWrite', db:'euro' } ]
... }
... )
在迁移应用程序之前,我注意到在 AWS EC2 实例管理页面中,您可以看到 2 个 IP 地址:公共 IP 和私有 IP,因此我使用了公共 IP。
在 Parse.com 设置中,我单击了“迁移”按钮,并输入了以下地址:
mongodb://username:password@<ipaddress>:27017/euro
在地址栏下方写着No reachable servers
。
我该怎么做才能解决这个问题并将应用程序迁移到我的 EC2 实例?
编辑#1:
我已重启 AWS 服务器,因此我的公共 IP 地址已更改。我尝试使用此地址将连接字符串更改为新 IP:
mongodb://username:password@<ipaddress>:27017/euro
但突然就出现了No reachable servers
。
我应该怎么做才能解决这个问题?我想尽快迁移它。
答案1
在您的 EC2 安全组中打开端口 27017。
迁移完成后,您应该从 EC2 安全组中删除此端口,以防止外部人员读取或更改您的文档。
答案2
检查您是否已在 mongod.conf 中将 bindIp 设置为 0.0.0.0。MongoDB 将使用本地 IP,该 IP 是私有 IP,无法通过外部访问。您还可以检查是否可以使用公共 IP 访问数据库。
尝试使用命令连接到 mongo db。
mongo -u 用户名 -p 密码 IP:端口/数据库名
这应该可以解决你的问题。