我正在尝试将数据存储在Amazon EC2上的mongoDB数据库中。我正在使用starcluster来配置和启动EC2实例。我在/ root / data上安装了一个EBS卷。我按照here的说明安装了mongoDB。当我登录EC2实例时,我能够键入mongo
,这会将我带到具有test
数据库的mongo shell。然后我将一些数据添加到数据库中,假设database1
,其中包含各种集合。当我退出EC2实例并使用starcluster terminate mycluster
终止它,然后创建一个新的不同实例时,mongo shell中不再显示database1
数据。
我尝试将/etc/mongodb.conf
文件中的dbpath更改为/root/data/mongodb
(即EBS卷),然后使用mongodb
启用和停止sudo service mongodb stop
服务{ {1}}。然后我再次尝试sudo service mongodb start
并接收
mongo
另一个问题是,每当我终止EC2实例时,我对配置文件所做的任何更改都会消失。
所以我的基本问题是:如何更改mongoDB在EC2上存储数据的位置,以便在我终止一个EC2实例然后启动另一个EC2实例时保留数据。
回答第一个答案:
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
mongodb
sudo service mongodb stop
释放。没有输出。netstat -anp | grep 27017
sudo service mongodb start
更改回原始设置,按照上述步骤重新启动mongodb,然后再次尝试连接。同样的错误。 在星际集配置中配置EBS卷,以便在每次启动时重新附加。
答案 0 :(得分:1)
对于更改/etc/mongodb.conf
问题后的“连接失败”,您可以检查/etc/mongodb.conf
中指定的日志文件(可能在/var/log/mongodb/mongodb.log
):
dbpath
指定的目录是否存在。netstat -anp | grep 27017
mongod
重新启动,然后再启动mongo
。您的问题不清楚您是否使用Starcluster EBS volumes for Persistent Storage。请注意,Ordinary EBS volumes在终止实例并启动另一个实例时不会自动保留并重新挂接。您需要手动附加和安装它们。
一旦你开始工作,你可能想要正确安装mongo并且/etc/mongodb.conf进行适当修改,创建一个custom Starcluster AMI。