您的位置:首页 > 数据库 > Mongodb

MongoDB-linux-2.4.10-X86_64(centos/linux下安装,启动服务脚本)

2014-05-21 11:24 639 查看
1,下载

从http://www.mongodb.org/downloads获取下载版本mongodb-linux-x86_64-2.4.10.tgz

2,添加用户
groupadd mongod
useradd -s /sbin/nologin -M -g mongod mongod

3,解压并移动到相应位置
[root@localhost ~]# tar -zxvf mongodb-linux-x86_64-2.4.10.tgz
[root@localhost ~]# cd mongodb-linux-x86_64-2.4.10
[root@localhost mongodb-linux-x86_64-2.4.10]# ls
bin GNU-AGPL-3.0 README THIRD-PARTY-NOTICES
[root@localhost mongodb-linux-x86_64-2.4.10]# cd bin/
[root@localhost bin]# ls
bsondump mongo mongod mongodump mongoexport mongofiles mongoimport mongooplog mongoperf mongorestore mongos mongosniff mongostat mongotop
[root@localhost ~]# mv mongodb-linux-x86_64-2.4.10 /mongodb

如有必要可设置其目录权限
chmod 755 /mongodb-linux-x86_64-2.4.10/ -R
如有必要可建立系统目录命令软链接
ln -s /mongodb/bin/mongo /usr/bin/mongo
ln -s /mongodb/bin/mongod /usr/bin/mongod

3,手工建立运行目录并授权
mkdir -p date
mkdir -p logs
mkdir -p conf
mkdir -p run
chmod u+w data -R
chmod u+w logs -R
chmod u+w run -R
chown -R mongod:mongod date logs run

4,建立配置文件
vim etc/mongod.conf
[root@localhost conf]# cat mongod.conf
# Start MongoDB as a daemon on port 8908

port = 8908
fork = true # daemonize it !
journal = true #
rest = true
logappend = true
auth = true

dbpath = /mongodb/data/
logpath = /mongodb/logs/mongod.log
pidfilepath = /mongodb/run/mongod.pid

=======================================
注:如果更多的启动参数,请在你的mongodb主目录bin目录下使用如下命令查看启动参数:
[root@localhost bin]# pwd
/mongodb/bin
[root@localhost bin]# ./mongod --help
Allowed options:

General options:
-h [ --help ] show this usage information
--version show version information
-f [ --config ] arg configuration file specifying additional options
-v [ --verbose ] be more verbose (include multiple times for more
verbosity e.g. -vvvvv)
--quiet quieter output
--port arg specify port number - 27017 by default
--bind_ip arg comma separated list of ip addresses to listen on
- all local ips by default
--maxConns arg max number of simultaneous connections - 20000 by
default
--logpath arg log file to send write to instead of stdout - has
to be a file, not directory
--logappend append to logpath instead of over-writing
--pidfilepath arg full path to pidfile (if not set, no pidfile is
created)
--keyFile arg private key for cluster authentication
--setParameter arg Set a configurable parameter
--nounixsocket disable listening on unix sockets
--unixSocketPrefix arg alternative directory for UNIX domain sockets
(defaults to /tmp)
--fork fork server process
--syslog log to system's syslog facility instead of file
or stdout
--auth run with security
--cpu periodically show cpu and iowait utilization
--dbpath arg directory for datafiles - defaults to /data/db/
--diaglog arg 0=off 1=W 2=R 3=both 7=W+some reads
--directoryperdb each database will be stored in a separate
directory
--ipv6 enable IPv6 support (disabled by default)
--journal enable journaling
--journalCommitInterval arg how often to group/batch commit (ms)
--journalOptions arg journal diagnostic options
--jsonp allow JSONP access via http (has security
implications)
--noauth run without security
--nohttpinterface disable http interface
--nojournal disable journaling (journaling is on by default
for 64 bit)
--noprealloc disable data file preallocation - will often hurt
performance
--noscripting disable scripting engine
--notablescan do not allow table scans
--nssize arg (=16) .ns file size (in MB) for new databases
--profile arg 0=off 1=slow, 2=all
--quota limits each database to a certain number of files
(8 default)
--quotaFiles arg number of files allowed per db, requires --quota
--repair run repair on all dbs
--repairpath arg root directory for repair files - defaults to
dbpath
--rest turn on simple rest api
--shutdown kill a running server (for init scripts)
--slowms arg (=100) value of slow for profile and console log
--smallfiles use a smaller default file size
--syncdelay arg (=60) seconds between disk syncs (0=never, but not
recommended)
--sysinfo print some diagnostic system information
--upgrade upgrade db if needed

Replication options:
--oplogSize arg size to use (in MB) for replication op log. default is
5% of disk space (i.e. large is good)

Master/slave options (old; use replica sets instead):
--master master mode
--slave slave mode
--source arg when slave: specify master as <server:port>
--only arg when slave: specify a single database to replicate
--slavedelay arg specify delay (in seconds) to be used when applying
master ops to slave
--autoresync automatically resync if slave data is stale

Replica set options:
--replSet arg arg is <setname>[/<optionalseedhostlist>]
--replIndexPrefetch arg specify index prefetching behavior (if secondary)
[none|_id_only|all]

Sharding options:
--configsvr declare this is a config db of a cluster; default port
27019; default dir /data/configdb
--shardsvr declare this is a shard db of a cluster; default port
27018
5,建立启动服务文件
[root@localhost conf]# cat /etc/init.d/mongod
#!/bin/bash

# mongod - Startup script for mongod

# chkconfig: 35 85 15
# description: Mongo is a scalable, document-oriented database.
# processname: mongod
# config: /etc/mongod.conf
# pidfile: /var/run/mongo/mongod.pid

. /etc/rc.d/init.d/functions

# things from mongod.conf get there by mongod reading it

# NOTE: if you change any OPTIONS here, you get what you pay for:
# this script assumes all options are in the config file.
BASEDIR="/mongodb"
CONFIGFILE="$BASEDIR/conf/mongod.conf"
OPTIONS=" -f $CONFIGFILE"
SYSCONFIG="/etc/sysconfig/mongod"

# FIXME: 1.9.x has a --shutdown flag that parses the config file and
# shuts down the correct running pid, but that's unavailable in 1.8
# for now. This can go away when this script stops supporting 1.8.
DBPATH=`awk -F= '/^dbpath=/{print $2}' "$CONFIGFILE"`
PIDFILE=`awk -F= '/^dbpath\s=\s/{print $2}' "$CONFIGFILE"`
mongod=${MONGOD-$BASEDIR/bin/mongod}

MONGO_USER=mongod
MONGO_GROUP=mongod

if [ -f "$SYSCONFIG" ]; then
. "$SYSCONFIG"
fi

# Handle NUMA access to CPUs (SERVER-3574)
# This verifies the existence of numactl as well as testing that the command works
NUMACTL_ARGS="--interleave=all"
if which numactl >/dev/null 2>/dev/null && numactl $NUMACTL_ARGS ls / >/dev/null 2>/dev/null
then
NUMACTL="numactl $NUMACTL_ARGS"
else
NUMACTL=""
fi

start()
{
echo -n $"Starting mongod: "
daemon --user "$MONGO_USER" $NUMACTL $mongod $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/mongod
}

stop()
{
echo -n $"Stopping mongod: "
killproc -p "$PIDFILE" -d 300 /usr/bin/mongod
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/mongod
}

restart () {
stop
start
}

ulimit -n 12000
RETVAL=0

case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload|force-reload)
restart
;;
condrestart)
[ -f /var/lock/subsys/mongod ] && restart || :
;;
status)
status $mongod
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
RETVAL=1
esac

exit $RETVAL

6,启动服务
[root@localhost logs]# service mongod restart
Stopping mongod: [失败]
Starting mongod: about to fork child process, waiting until server is ready for connections.
forked process: 1605
all output going to: /mongodb/logs/mongod.log
child process started successfully, parent exiting
[确定]
[root@localhost logs]# ps -ef | grep mongod
root 1407 1346 0 17:08 pts/1 00:00:00 vim /etc/init.d/mongod
mongod 1564 1 1 17:13 ? 00:00:00 /mongodb/bin/mongod -f /mongodb/conf/mongod.conf
root 1577 1410 0 17:14 pts/2 00:00:00 grep mongod
[root@localhost logs]# lsof -i:8908
-bash: lsof: command not found
[root@localhost logs]# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8908 0.0.0.0:* LISTEN 1564/mongod
tcp 0 0 0.0.0.0:9908 0.0.0.0:* LISTEN 1564/mongod

7,shell进入服务命令行查看
系统默认使用270117端口号,故登录不成功
[root@localhost bin]# ./mongo 
MongoDB shell version: 2.4.10
connecting to: test
Wed May 21 17:28:09.809 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145
exception: connect failed

由于改变了端口号,故使用时需要指定端口号
[root@localhost bin]# ./mongo -port 8908  
MongoDB shell version: 2.4.10
connecting to: 127.0.0.1:8908/test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user >

查看data目录,自动生成如下文件
[root@localhost mongodb]# cd data/
[root@localhost data]# ll
总用量 507936
-rw------- 1 mongod mongod 67108864 5月 21 17:37 admin.0
-rw------- 1 mongod mongod 134217728 5月 21 17:37 admin.1
-rw------- 1 mongod mongod 16777216 5月 21 17:37 admin.ns
drwxr-xr-x 2 mongod mongod 4096 5月 21 18:01 journal
-rw------- 1 mongod mongod 67108864 5月 21 18:01 local.0
-rw------- 1 mongod mongod 16777216 5月 21 18:01 local.ns
-rwxr-xr-x 1 mongod mongod 5 5月 21 18:01 mongod.lock
-rw------- 1 mongod mongod 67108864 5月 21 18:02 test.0
-rw------- 1 mongod mongod 134217728 5月 21 18:00 test.1
-rw------- 1 mongod mongod 16777216 5月 21 18:02 test.ns
OK,以上情况视为安装成功,服务正常运行

8,基本用户管理--命令区分大小写 http://blog.51yip.com/nosql/1575.html 请参考该博文

9,更多shell操作管理命令
请查看http://quanzhong.iteye.com/blog/916237 博文
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐