从官网下载MongoDB的压缩包。
将mongodb-linux-x86_64-2.6.8.tgz解压
[neil@neilhost Downloads]$ tar zxvf mongodb-linux-x86_64-2.6.8.tgz mongodb-linux-x86_64-2.6.8/READMEmongodb-linux-x86_64-2.6.8/THIRD-PARTY-NOTICESmongodb-linux-x86_64-2.6.8/GNU-AGPL-3.0mongodb-linux-x86_64-2.6.8/bin/mongodumpmongodb-linux-x86_64-2.6.8/bin/mongorestoremongodb-linux-x86_64-2.6.8/bin/mongoexportmongodb-linux-x86_64-2.6.8/bin/mongoimportmongodb-linux-x86_64-2.6.8/bin/mongostatmongodb-linux-x86_64-2.6.8/bin/mongotopmongodb-linux-x86_64-2.6.8/bin/mongooplogmongodb-linux-x86_64-2.6.8/bin/mongofilesmongodb-linux-x86_64-2.6.8/bin/bsondumpmongodb-linux-x86_64-2.6.8/bin/mongoperfmongodb-linux-x86_64-2.6.8/bin/mongodmongodb-linux-x86_64-2.6.8/bin/mongosmongodb-linux-x86_64-2.6.8/bin/mongo
MongoDB无需安装即可应用,所以我们自己将其部署到/usr/local/下
首先在usr/local/目录下新建一个mongodb文件夹(注意要su权限)
[neil@neilhost /]$ cd /[neil@neilhost /]$ cd usr/local/[neil@neilhost local]$ lsbin etc games include lib lib64 libexec sbin share src
[neil@neilhost local]$ sudo mkdir mongodb[sudo] password for neil: [neil@neilhost local]$ lsbin etc games include lib lib64 libexec mongodb sbin share src
之后,将之前解压好的Monggodb文件夹移动到/usr/local/mongodb下:
[neil@neilhost local]$ cd ~/Downloads/[neil@neilhost local]$ sudo mv mongodb-linux-x86_64-2.6.8/* /usr/local/mongodb/
(或者
也可以在mongodb-linux-x86_64-2.6.8文件夹里使用如下命令:
rsync -a bin /usr/local/mongodb
)
然后为mongodb创建数据库存放的位置(默认是在/data/db下面),这里在mongodb下面建立了相应的目录data/
[neil mongodb]$ sudo mkdir data
为mongodb创建一个日志文件dblogs
[neil@neilhost mongodb]$ sudo touch dblogs
[neil@neilhost mongodb]$ lsbin data dblogs GNU-AGPL-3.0 README THIRD-PARTY-NOTICES
至此,MongoDB就算安装好了。
——————————————————————————————
bin可以看到MongDB用到的13个二进制文件
[neil@neilhost mongodb]$ tree binbin├── bsondump├── mongo├── mongod├── mongodump├── mongoexport├── mongofiles├── mongoimport├── mongooplog├── mongoperf├── mongorestore├── mongos├── mongostat└── mongotop0 directories, 13 files
早先的版本MongoDB的bin只有12个二进制文件,并且部分二进制文件与现在的也不同。
————————————————————————————————————————————
如果你需要在每次服务器开机时都需要自动启动MongoDB,那么需要设置一些环境变量
将mongodb启动项目加入rc.local保证mongodb在服务器开机时启动:
echo "/usr/local/mongodb/bin/mongodb" --dbpath=/usr/local/mongodb/data">> /etc/rc/local
不过,我还是喜欢自己启动。或者自己写在一个脚本里,以后要启动哪些东西自己配置。
手动启动方式如下:
[neil@neilhost mongodb]$ cd bin[neil@neilhost bin]$ lsbsondump mongodump mongoimport mongorestore mongotopmongo mongoexport mongooplog mongosmongod mongofiles mongoperf mongostat[neil@neilhost bin]$ sudo ./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/dblogs --fork[sudo] password for neil: about to fork child process, waiting until server is ready for connections.forked process: 6593
这里--dbpath指定的是数据库文件存储的路径,--logpath指定的是日志文件路径是什么,之前的dblogs也可以自己命名为其他名字,在这里指定即可。
--fork参数指的是在后台执行,当然也可以用&符号。
系统返回的forked process:6593指的是系统给Mongodb分配的进程号PID是6593(每次都不一样哦)
那么现在MongoDB有没有被成功启动呢?
通过命令:
[neil@neilhost bin]$ pstree -p| grep mongod |-mongod(6593)-+-{mongod}(6594) | |-{mongod}(6595) | |-{mongod}(6596) | |-{mongod}(6608) | |-{mongod}(6609) | |-{mongod}(6610) | |-{mongod}(6611) | |-{mongod}(6612) | `-{mongod}(6613)
主进程6593下有9个子进程。
上面手动启动的语句可以放到/etc/rc.local文件里,让系统开机后自动执行。(/etc/rc.local是linux开机后最后执行的脚本)
——————————————————————————————————
如何关闭mongodb服务呢?
[neil@neilhost bin]$ sudo pkill mongod[sudo] password for neil: [neil@neilhost bin]$ pstree -p| grep mongod[neil@neilhost bin]$
这样,用pkill命令就把mongdb关闭了。这里也可以用killall mongod
注意:但是绝对不能用kill -9来关闭mongodb,否则就会发现下次无法成功启动mongod了!!!切记!!!
_____________________________________________
这里再增加一种方法:
写一个shell脚本文件mongodbstart.sh,文件内容如下:
sudo /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/dblogs --fork
然后执行该shell脚本:
[neil@neilhost Downloads]$ sh mongodbstart.shabout to fork child process, waiting until server is ready for connections.forked process: 7042child process started successfully, parent exiting[neil@neilhost Downloads]$ pstree -p| grep mongod |-mongod(7042)-+-{mongod}(7043) | |-{mongod}(7044) | |-{mongod}(7045) | |-{mongod}(7046) | |-{mongod}(7047) | |-{mongod}(7048) | |-{mongod}(7049) | |-{mongod}(7050) | `-{mongod}(7051)
以后如果有其他需要一起启动的东西,可以都加入脚本文件中,一起启动。并且不会在开机时候启动。