我有一台安装了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 Instances Managment页面中,您可以看到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
。
我该怎么做才能解决这个问题?我想尽快迁移它。
编辑#2:
我已经检查了这个命令sudo netstat -pan | grep mongod
来检查它正在监听哪个IP,我得到了这个输出:
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 10945/mongod
tcp 0 0 127.0.0.1:27017 127.0.0.1:45406 ESTABLISHED 10945/mongod
unix 2 [ ACC ] STREAM LISTENING 28614 10945/mongod /tmp/mongodb-2
是否在监听公共知识产权?私人IP?本地主机?
答案 0 :(得分:1)
我使用MongoDB guide和this回答解决了这个问题。
问题是我在启动服务器时收到的一些警告。显然它阻止了Parse.com连接到我的MongoDB。
$ mongo
MongoDB shell version: 3.0.11
connecting to: test
Server has startup warnings:
2016-04-01T07:28:10.926+0000 I CONTROL [initandlisten]
2016-04-01T07:28:10.926+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-04-01T07:28:10.926+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-04-01T07:28:10.926+0000 I CONTROL [initandlisten]
2016-04-01T07:28:10.926+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-04-01T07:28:10.926+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-04-01T07:28:10.926+0000 I CONTROL [initandlisten]
>
我无法解决它,因为我在没有root权限的情况下使用了此命令$ service mongod restart
。我原本应该使用这个命令$ sudo service mongod restart
。