您是从10gen存储库运行还是从默认的Debian / Ubuntu存储库运行?我建议使用官方的10gen存储库。
检出此链接-[10gen在Ubuntu上安装MongoDB的方法:] http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/。最好在此更改之前卸载先前的mongodb安装,这也将需要您修改存储库源(在/etc/apt/source.list中),但这在上面的链接中也有详细介绍。我建议在sysvinit上使用upstart,并且操作方法中概述了处理过程。
使用10gen Ubuntu设置后,配置文件位于/etc/mongodb.conf中。
您可以通过多种方法来运行单独的mongod进程,其中一种方法是仅从cli中运行它-
sudo -u mongodb mongod --dbpath /var/tmp/mongotest --logpath /var/tmp/mongotest_log --port 3001 &
会产生(使用“ ps”)
mongodb 2210 3.3 1.5 259012 15300 pts/0 Dl 11:48 0:00 mongod --dbpath /var/tmp/mongotest --logpath /var/tmp/mongotest_log --port 3001
你可以通过cli-> mongod --port 3001连接
另一种方法是创建/etc/mongodb.conf的副本-
sudo cp /etc/mongodb.conf /etc/mongodbnew.conf and editing the following lines in the new file -
# mongodbnew.conf
dbpath=/var/lib/mongodbnew
#where to log
logpath=/var/log/mongodb/mongodbnew.log
port = 27018
我已经将dbpath(存储mongodb文件的位置)从/ var / lib / mongodb更改为/ var / lib / mongodbnew;日志路径已从mongodb.log更改为mongodbnew.log,并且端口已从默认值27017更改为27018(您还必须删除#来取消注释该行)。
我还更改了第一行以反映此配置文件的新名称。
您还必须创建数据目录,因为它不存在,没有它,mongod进程将无法启动,并确保所有者和组是mongodb-
sudo mkdir /var/lib/mongodbnew
sudo chown -R mongodb:mongodb mongodbnew/
此外,创建和更改日志文件的权限-
sudo touch /var/log/mongodb/mongodbnew.log && sudo chown mongodb:mongodb /var/log/mongodb/mongodbnew.log
要从cli(在后台)启动新的mongod进程,请键入
sudo -u mongodb /usr/bin/mongod --config /etc/mongodbnew.conf &
将以下内容发送到屏幕-
“所有输出将转到:/var/log/mongodb/mongodbnew.log”
检查mongod进程是否以“ ps”运行-
sysadmin@ubuntu:/var/lib$ ps auwx | grep mongo | egrep -v 'grep|sudo'
mongodb 921 11.3 1.5 627672 15608 ? Ssl 10:56 4:30 /usr/bin/mongod --config /etc/mongodb.conf
mongodb 2137 7.8 1.5 627672 15880 pts/0 Sl 11:36 0:00 /usr/bin/mongod --config /etc/mongodbnew.conf
要验证您可以连接,请运行Mongo Shell-
$ mongo --port 27018
MongoDB shell version: 2.0.5
connecting to: 127.0.0.1:27018/test
>
使用lsof,您现在应该看到两个mongod进程,原始进程绑定到27017,而新进程绑定到27018。
$ sudo lsof -i :27017
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 921 mongodb 6u IPv4 9066 0t0 TCP *:27017 (LISTEN)
sysadmin@ubuntu:/var/lib$ sudo lsof -i :27018
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 2137 mongodb 6r IPv4 11923 0t0 TCP *:27018 (LISTEN)
为了确保这两个进程在启动时都能运行,请复制原始的init配置文件-
sudo cp /etc/init/mongodb.conf /etc/init/mongodbnew.conf
这将导致两个文件,例如-
$ ls -lart /etc/init/mongo*
-rw-r--r-- 1 root root 536 May 8 15:51 /etc/init/mongodb.conf
-rw-r--r-- 1 root root 554 Jun 11 11:43 /etc/init/mongodbnew.conf
使用vi或任何您喜欢的样子编辑新的mongodbnew.conf文件-
## Ubuntu upstart file at /etc/init/mongodbnew.conf
limit nofile 20000 20000
kill timeout 300 # wait 300s between SIGTERM and SIGKILL.
pre-start script
mkdir -p /var/lib/mongodbnew/
mkdir -p /var/log/mongodbnew/
end script
start on runlevel [2345]
停止运行级别[06]
script
ENABLE_MONGODB="yes"
if [ -f /etc/default/mongodbnew ]; then . /etc/default/mongodbnew; fi
if [ "x$ENABLE_MONGODB" = "xyes" ]; then exec start-stop-daemon --start --quiet --chuid mongodb --exec /usr/bin/mongod -- --config /etc/mongodbnew.conf; fi
结束脚本
我已经在Ubuntu 12.04上对此进行了测试,它似乎可以很好地工作,包括重启后。我显然还没有在生产中运行它。抱歉,如果上面有任何错别字,但有很多信息,我可能错过了一些东西。
最后,这是副本集上的链接,它可能会为您提供帮助,因为它提供了从cli启动多个mongod实例的示例-http: //www.mongodb.org/display/DOCS/Replica+Set+Tutorial。