我在虚拟机VirtualBox上安装了Ubuntu 14.04,然后在部署MongoDB时遇到了错误。
环境:
系统:Ubuntu(amd64服务器版本) on VirtualBox,内存256MB,双核CPU。
硬盘:8GB ext4文件系统(.vdi),已经使用了64.5%
互联网连接正常,软件源已经更新
问题:
在安装mongo-server
$ sudo apt-get install mongodb-server
之后,无法启动MongoDB的服务
$ sudo service mongodb start #why error?
重启虚拟机多次,删除配置文件并重装mongo-server多次
$ sudo apt-get remove –purge mongodb-server
$ sudo apt-get install mongodb-server
无效。
分析:
查看配置文件/etc/mongodb.conf,根据其中的信息进行追踪到了几个目录,可疑的报错项有:
空间不够,提示使用--smallfiles参数
日志目录权限不够,拒绝访问
调整起来依然比较繁琐。
尝试手工启动mongod进程,报空间和权限的错
$ mongod –f /etc/mongodb.conf #权限错误
$ sudo mongod –f /etc/mongodb.conf #空间不够
查看了一下/etc/group和/etc/passwd,已经存在MongoDB相关的项,说明MongoDB账户已经建立好了。
权衡:
直接修改默认日志目录和数据文件的权限依然有可能会出问题。不想在层级的目录权限上纠结。由/etc/passwd知,MongoDB的老家在/home/mongodb,那就让它回老家去吧。
方法:
建立MongoDB的老家,并且给它产权
$ sudo mkdir –p /home/mongodb
$ sudo chown mongodb:mongodb /home/mongodb
调整配置文件,指向老家,加上参数
$sudo vim /etc/mongodb.conf
…
dbpath=/home/mongodb
logpath=/home/mongodb/mongo.log
smallfiles=true
…
再次重启。经此调整以后,已经能够正确维护MongoDB服务
$ sudo service mongodb [start|restart|status]
CentOS编译安装MongoDB
CentOS 编译安装 MongoDB与mongoDB的php扩展
CentOS 6 使用 yum 安装MongoDB及服务器端配置
《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]
基于CentOS 6.5操作系统搭建MongoDB服务 uxidc.com/Linux/2014-11/108900.htm