MongoDB Linux下的安装和启动

[b] MongoDB Linux下的安装和启动[/b]
http://www.linuxidc.com/Linux/2011-05/36309.htm

1. 下载MongoDB,此处下载的版本是:mongodb-linux-i686-1.8.1.tgz.tar。

http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.1.tgz



相关阅读:

MongoDB Linux下的安装和启动 http://www.linuxidc.com/Linux/2011-05/36309.htm

MongoDB下的高级查询示例 http://www.linuxidc.com/Linux/2011-05/36312.htm

MongoDB Java API for 插入和单collection基本查询使用示例 http://www.linuxidc.com/Linux/2011-05/36313.htm

MongoDB下的查询操作(与Java API查询操作对应) http://www.linuxidc.com/Linux/2011-05/36314.htm

2. 解压文件到某目录下,然后重命名:

# tar -xzvf mongodb-linux-i686-1.8.1.tgz.tar
# mv mongodb-linux-i686-1.8.1 /usr/local/mongodb/



3. 查看安装后的文件情况:

# cd /usr/local/mongodb/
# ls
bin GNU-AGPL-3.0 README THIRD-PARTY-NOTICES
# cd bin/
# ls
bsondump dbbak mongo mongod mongodump mongoexport mongofiles mongoimport mongorestore mongos mongosniff mongostat



bin下的mongod就是MongoDB的服务端进程,mongo就是其客户端,其它的命令用于MongoDB的其它用途如MongoDB文件导出等。

4. 启动MongoDB.

要先建立好MongoDB 存放数据文件和日志文件的目录,此处建立在/data下:

# cd /data/
# ls
mongodb_data mongodb_log



在MongoDB安装目录下的bin下使用mongod启动MongoDB,

./mongod --dbpath=/data/mongodb_data/ --logpath=/data/mongodb_log/mongodb.log --logappend&



等待启动成功后,可查看是否启动成功了,默认端口号是27017,当然在启动时也可以指定未使用的其它端口。

先通过查看端口号看MongoDB是否启动了。

# netstat -lanp | grep "27017"
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1573/mongod
unix 2 [ ACC ] STREAM LISTENING 5874 1573/mongod /tmp/mongodb-27017.sock



可以看到,已启动成功,现在使用mongo客户端访问一下该数据库。

# cd /usr/local/mongodb/bin/
# ./mongo
MongoDB shell version: 1.8.1
connecting to: test
>



到这一步说明已经安装成功了。

5. 额外工作。

注意,上述我们启动MongoDB都是手动使用mongod来启动,这样关闭计算机后,下次再进来它又没启动了,所以还得手动启动,因此,为避免这种繁琐的工作,可以把mongod放到服务自启动项中,这样计算机一开启mongod服务也就启动了。

编辑/etc/rc.local,加入下述代码然后再保存即可。


#add mongonDB service
rm -rf /data/mongodb_data/* && /usr/local/mongodb/bin/mongod --dbpath=/data/mongodb_data/ --logpath=/data/mongodb_log/mongodb.log --logappend&



我们重启计算机再看MongoDB是否启动,重启后可以直接使用 mongo命令登录,最终发现是可以成功的。

另外,我们使用mongo命令登录 MongoDB还要转到mongo命令所在目录再执行./mongo,这样是不是有些麻烦?因此,我们可以简化这点,将该命令文件copy到/usr/bin下,这样就可以在任何目录下使用mongo命令了。

# ls
bsondump dbbak mongo mongod mongodump mongoexport mongofiles mongoimport mongorestore mongos mongosniff mongostat
# cp mongo /usr/bin/



转到任一目录试下mongo命令:

# cd /
# mongo
MongoDB shell version: 1.8.1
connecting to: test
>
来源:http://www.cnblogs.com/fzsh/archive/2011/12/02/2271799.html
[b]MongoDB的启动和停止脚本[/b]
启动方式:
Mongodb脚本:把命令行的内容保存到一个文件中,把该文件放在/usr/bin(或任何系统设置的PATH路径中)下,就可以直接用该文件来启动或停止服务了。

本人比较倾向把启动mongodb的参数放在配置文件中,直观且便于管理,例如把参数写入/etc目录下的mongodb.cnf文件中,参数设置如下:

#configuration Options for MongoDB
#
# For More Information, Consider:
# - Configuration Parameters: http://www.mongodb.org/display/DOCS/Command+Line+Parameters
# - File Based Configuration: http://www.mongodb.org/display/DOCS/File+Based+Configuration
dbpath = /data/db/
logpath = /data/log/m.log
logappend = true

#bind_ip = 127.0.0.1
port = 27017
fork = true
#auth = true
noauth = true
directoryperdb = true
journal = true

可以使用命令:

/usr/local/mongodb/bin/mongod --config /etc/mongodb.cnf

来启动mongodb,所以启动脚本就可以这么写

#!/bin/sh

/usr/local/mongodb/bin/mongod --config /etc/mongodb.cnf

假设该文件命名为mongodb-start,存放于/usr/bin下,现在就可以直接用mongodb-start来启动服务了,注意,该文件要有执行的权限。

停止mongodb服务脚步如下:

#!/bin/bash

pid=`ps -o pid,command ax | grep mongod | awk '!/awk/ && !/grep/ {print $1}'`;
if [ "${pid}" != "" ]; then
kill -2 ${pid};
fi

其实就是通过ps、grep、awk命令找到mongod的进程号,在通过kill来关闭mongod服务,当然查询进程号的命令还有很多,任取一种即可,例如:

ps -C mongod -f | grep mongod |tr -s ' ' | cut -d ' ' -f 2

ps aux | grep mongod | grep -v "grep" | awk -F" " '{print $2}'

欢迎转载,转载请注明文章出处,谢谢!


[b]linux下MongoDB开机自启动的问题[/b]


按照常理,把如下命令

/usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb

放在/etc/rc.local文件中就可以实现开机自启动了,第一次重启机器发现mongodb顺利启动了,再次重启机器后,通过ps没有查看到相应mongod进程,也就是启动失败了。原因是由于重启机器,导致非正常停止mongod服务,mongod.lock中还记录了上次运行的进程号,为了数据的安全需要执行 /usr/local/mongodb/bin/mongod –repair,当然如果直接把mongod.lock文件删除也可以重新启动了,例如:

/usr/local/mongodb/bin/mongod --repair
/usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb


rm -rf /data/db/mongod.lock
/usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb

注意上述启动Mongodb都是没有增加journal参数,如果带了此参数就不会那么麻烦了,例如

/usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb --journal

就可以了,就算是非正常重启机器,mongodb也会根据日志去修复数据库的。

另外,如果mongodb的数据目录是通过mount的NFS文件夹,自启动好像有问题的。

来源:http://www.netingcn.com/linux-mongodb-auto-startup.html


[b]1. 启动和停止MongoDB:[/b]

执行mongod命令启动MongoDB服务器。mongod有很多可配置的选项,我们通过mongod --help可以查看所有选项,这里仅介绍一些主要选项:
--dbpath:
缺省情况下数据库的数据目录为/data/db。对于Windows平台,如果当前的可执行文件位于D盘,那么其缺省数据目录为D:\data\db。我们可以通过这个选项为服务程序重新指定数据目录。如果当前主机运行多个mongod,那么必须为每个服务程序指定不同的数据目录,因为当mongod启动成功之后,会在数据目录下创建一个mongod.lock的文件,该文件用于防止其它mongod进程数据该数据目录。如:
mongod --dbpath=D:/data2/db

--port
缺省情况下的默认端口号是27017。同样当有多个mongod服务程序在同一台主机同时运行时,则需要为它们分别指定不同的监听端口。如:
mongod --port=29017

--fork
以守护进程的方式运行MongoDB。

--logpath
指定日志输出路径,而不是输出到命令行。如果对文件夹有写权限的话,系统会在文件不存在时创建它。它会将已有文件覆盖掉,清除所有原来的日志记录。如果想保留原来的日志,还需要使用--logappend选项。如:
/> mongod --logpath=D:\logdata\mylog.log
all output going to: D:\logdata\mylog.log
需要说明的是,对于上例,logdata目录必须被提前手工创建,否则mongod将执行启动失败。

--config
指定配置文件,用于加载命令行未指定的各种选项。如:
mongod --config=D:\mydb.conf
配置文件的示例内容如下:
port = 29017
fork = true #这里的井号表示注释部分,对于fork这种命令行选项,需要用true来表示打开了。
logpath = D:\mylog\db.log

通常情况下,我们都是希望将mongodb server优雅的关闭。如果服务程序运行于前台,那么直接CTRL+C即可。如果是后台,那么可以通过SIGINT和SIGTERM信号来通知服务程序准备退出,服务器在收到信号后,会先妥善的安排退出前的数据和状态保存工作,如:正常的关闭当前的连接、将缓存中的数据刷新到磁盘等。在完成所有这些工作之后,服务器正常停止。如:
/> pkill mongod
/> pkill -2 mongod
切记不要直接执行下面的命令:
/> pkill -9 mongod
该信号将会导致mongodb server强制性立即退出。
除了上述方法之外,我们还可以通过mongo客户端工具通知服务器正常退出,如:
> use admin
switched to db admin
> db.shutdownServer()

2、服务器状态监控:

C:\Mine\ThirdParty\mongodb\bin>mongostat
connected to: 127.0.0.1
insert query update delete getmore command flushes mapped vsize ... ...
0 0 0 0 0 1 0 0m 100m ... ...
0 0 0 0 0 1 0 0m 100m ... ...
0 0 0 0 0 1 0 0m 100m ... ...
0 0 0 0 0 1 0 0m 100m ... ...
0 0 0 0 0 1 0 0m 100m ... ...
0 0 0 0 0 1 0 0m 100m ... ...
0 0 0 0 0 1 0 0m 100m ... ...
0 0 0 0 0 1 0 0m 100m ... ...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值