低调大师

Mongodb入门系列(2)——在linux下安装、启动、关闭MongoDB以及注意事项(详细)

2015-3-3 17:57 6已围观 收藏 加入我们

从官网下载MongoDB的压缩包。http://www.mongodb.org/downloads

将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/README
mongodb-linux-x86_64-2.6.8/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-2.6.8/GNU-AGPL-3.0
mongodb-linux-x86_64-2.6.8/bin/mongodump
mongodb-linux-x86_64-2.6.8/bin/mongorestore
mongodb-linux-x86_64-2.6.8/bin/mongoexport
mongodb-linux-x86_64-2.6.8/bin/mongoimport
mongodb-linux-x86_64-2.6.8/bin/mongostat
mongodb-linux-x86_64-2.6.8/bin/mongotop
mongodb-linux-x86_64-2.6.8/bin/mongooplog
mongodb-linux-x86_64-2.6.8/bin/mongofiles
mongodb-linux-x86_64-2.6.8/bin/bsondump
mongodb-linux-x86_64-2.6.8/bin/mongoperf
mongodb-linux-x86_64-2.6.8/bin/mongod
mongodb-linux-x86_64-2.6.8/bin/mongos
mongodb-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]$ ls
bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[neil@neilhost local]$ sudo mkdir mongodb
[sudo] password for neil: 
[neil@neilhost local]$ ls
bin  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@neilhost mongodb]$ sudo mkdir data

为mongodb创建一个日志文件dblogs

[neil@neilhost mongodb]$ sudo touch dblogs
[neil@neilhost mongodb]$ ls
bin  data  dblogs  GNU-AGPL-3.0  README  THIRD-PARTY-NOTICES

至此,MongoDB就算安装好了。

——————————————————————————————

bin可以看到MongDB用到的13个二进制文件

[neil@neilhost mongodb]$ tree bin
bin
├── bsondump
├── mongo
├── mongod
├── mongodump
├── mongoexport
├── mongofiles
├── mongoimport
├── mongooplog
├── mongoperf
├── mongorestore
├── mongos
├── mongostat
└── mongotop

0 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]$ ls
bsondump  mongodump    mongoimport  mongorestore  mongotop
mongo     mongoexport  mongooplog   mongos
mongod    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.sh
about to fork child process, waiting until server is ready for connections.
forked process: 7042
child 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)

以后如果有其他需要一起启动的东西,可以都加入脚本文件中,一起启动。并且不会在开机时候启动。


文章转载至:https://my.oschina.net/happyBKs/blog/382219
收藏 (0)

文章评论

共有0条评论来说两句吧...