我在虛擬機VirtualBox上安裝了Ubuntu14.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]