我正在尝试将数据存储在 Amazon EC2 上的 mongoDB 数据库中。我正在使用 starcluster 来配置和启动 EC2 实例。我在 /root/data 安装了一个 EBS 卷。我按照此处的说明安装了 mongoDB 。当我登录到 EC2 实例时,我可以键入,这会将我带到带有数据库mongo
的 mongo shell 。test
然后,我将一些数据添加到数据库中,比如说database1
,其中包含各种集合。当我退出 EC2 实例并使用 终止它,starcluster terminate mycluster
然后创建一个新的不同实例时,database1
数据不再显示在 mongo shell 中。
我尝试将/etc/mongodb.conf
文件中的 dbpath 更改/root/data/mongodb
为 EBS 卷,然后使用and启动和停止mongodb
服务。然后我再试一次并收到sudo service mongodb stop
sudo service mongodb start
mongo
MongoDB shell version: 2.2.2
connecting to: test
Sat Jan 19 21:27:42 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
另一个问题是,每当我终止 EC2 实例时,我对配置文件所做的任何更改都会消失。
所以我的基本问题是:如何更改 mongoDB 在 EC2 上存储其数据的位置,以便在我终止一个 EC2 实例然后启动另一个 EC2 实例时数据将保留。
编辑:
回应第一个答案:
- 目录确实存在
- 我将所有者更改为
mongodb
- 然后我发出命令
sudo service mongodb stop
- 检查端口是否已使用
netstat -anp | grep 27017
. 没有输出。 - 使用重新启动mongodb
sudo service mongodb start
- 再次检查端口 27017 并没有收到任何输出。
- 尝试连接到 mongo shell 并收到相同的错误消息。
- 改
mongodb.conf
回原来的设置,按上述步骤重启mongodb,再次尝试连接。同样的错误。
EBS 卷在 starcluster 配置中配置为在每次启动时重新附加。