MongoDB是C++开发的一款开源、无模式的文档型数据库,具有高性能、易部署、易使用、数据存储方便等特点;MongoDB采用Bson(binary json)的形式存储数据,无锁,无事务,有索引,支持集群和分片功,可动态增删结点。


实验环境:
系统:FreeBSD 8.1-RELEASE
版本:mongodb v1.6.6

安装:
  目前,官网上并没有FreeBSD下MongoDB的pkg包下载,所以FreeBSD下MongoDB的安装方式只有两种:ports方式和源码方式。其中Ports方式十分简单,但是由于网速等因数影响,可能要很久才能完成安装;而在MongoDB依赖包安装不全的的情况下,使用源码方式安装MongoDB相对会更为复杂。
1. Ports方式安装MongoDB:

 
  
  1. cd /usr/ports/databases/mongodb  
  2. make  
  3. make install 

  Ports方式安装MongoDB十分简单,就以上三条命令。但由于网络问题或Ports树太旧等原因可能会报错。如出现错误终止,请仔细观察错误代码,删除/usr/ports/distfiles/下未下载完成的文件或更新Ports树后重新Make。
如果你有多台FreeBSD主机要安装MongoDB,而且这些主机的硬件平台几乎相同,为了提高工作效率,你可以将Ports方式安装的MongoDB、以及MongoDB的依赖包,打包成pkg包,然后通过scp方式复制到其他主机上使用pkg_add命令安,效率会成倍的提高。具体打包方式如下:

 
  
  1. cd /var/db/pkg 
  2. pkg_create -R -b mongodb-1.*   # 把*号换成版本号,-R参数为连同依赖包一起打包 
  3. ls *.tbz            # 查看打好的包 

  按以上方式打好包后,即可以拷贝到其他主机上,使用pkg_add mongodb-1.*.tbz进行安装。
2. 源码的方式安装:
①. 下载MongoDB:
打开www.mongodb.org/downloads页面,在最后一列找到你要需要版本的源码(我这里是v1.6.6),然后执行下列命令:

 
  
  1. #安装依赖包 
  2. cd /usr/ports/lang/spidermonkey && make && make install 
  3. cd /usr/ports/devel/scons && make && make install  #在弹出的窗口中选上"python" 
  4. cd /usr/ports/devel/boost-all && make && make install 
  5. cd /usr/ports/devel/libexecinfo && make && make install 
  6. cd /usr/ports/devel/pcre && make && make install    #官方的文档中没此项,会报错 
  7.  
  8. #下载,解压,编译 
  9. cd /usr/local 
  10. fetch http://downloads.mongodb.org/src/mongodb-src-r1.6.5.tar.gz 
  11. tar -zxvf mongodb-src-r1.6.5.tar.gz 
  12. mv mongodb-src-r1.6.5 mongodb-1.6.5 
  13. cd mongodb-1.6.5 
  14. scons .                # 然后等待完成 
  15.  
  16. # 设置环境变量 
  17. export PATH=$PATH:/usr/local/mongodb-1.6.5 

启动MongoDB服务:
  MongoDB的服务端运行模式有三种,分别是:单台模式、主从模式、分片模式。
1. 单台模式的Mongodb的启动

 
  
  1. mkdir -p /data/db  
  2. mongod --dbpath /data/db --logpath /data/db/db.log  --fork 
  3.  
  4. # 查看状态 
  5. mongo 127.0.0.1:27017 
  6. show dbs #显示数据库 
  7. help 

2. 主从(Master、Slave)模式的Mongodb的启动:
Master主机( ip为10.0.0.1):

 
  
  1. mongod --master --dbpath /data/master --logpath /data/master/master.log  --fork 
  2. cat /data/master/master.log 

Slave主机(ip为10.0.0.2):

 
  
  1. mongod --slave --dbpath /data/slave --logpath /data/slave/slave.log  --source 10.0.0.1:27017 --fork 
  2. cat /data/slave/slave.log 

测试:

 
  
  1. # 查看状态 
  2. mongo 10.0.0.1:27017 
  3. show dbs #显示数据库 
  4. help

3. 分片模式:
由于分片模式配置相对复杂,在另篇文章详细介绍。