十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
首先从官网下载MongoDB的安装包http://www.mongodb.org/downloads我的系统是redhat5.8所有选择相应的版本包就ok现在最新版是3.0.3
你所需要的网站建设服务,我们均能行业靠前的水平为你提供.标准是产品质量的保证,主要从事成都做网站、网站建设、企业网站建设、成都做手机网站、网页设计、品牌网站制作、网页制作、做网站、建网站。成都创新互联拥有实力坚强的技术研发团队及素养的视觉设计专才。
解压mongodb-linux-x86_64-rhel55-3.0.3.tgz
[root@mongodb ~]# tar zxvf mongodb-linux-x86_64-rhel55-3.0.3.tgz -C /opt/ mongodb-linux-x86_64-rhel55-3.0.3/README mongodb-linux-x86_64-rhel55-3.0.3/THIRD-PARTY-NOTICES mongodb-linux-x86_64-rhel55-3.0.3/GNU-AGPL-3.0 mongodb-linux-x86_64-rhel55-3.0.3/bin/mongodump mongodb-linux-x86_64-rhel55-3.0.3/bin/mongorestore mongodb-linux-x86_64-rhel55-3.0.3/bin/mongoexport mongodb-linux-x86_64-rhel55-3.0.3/bin/mongoimport mongodb-linux-x86_64-rhel55-3.0.3/bin/mongostat mongodb-linux-x86_64-rhel55-3.0.3/bin/mongotop mongodb-linux-x86_64-rhel55-3.0.3/bin/bsondump mongodb-linux-x86_64-rhel55-3.0.3/bin/mongofiles mongodb-linux-x86_64-rhel55-3.0.3/bin/mongooplog mongodb-linux-x86_64-rhel55-3.0.3/bin/mongoperf mongodb-linux-x86_64-rhel55-3.0.3/bin/mongod mongodb-linux-x86_64-rhel55-3.0.3/bin/mongos mongodb-linux-x86_64-rhel55-3.0.3/bin/mongo [root@mongodb opt]# ln -sv mongodb-linux-x86_64-rhel55-3.0.3/ mongodb create symbolic link `mongodb' to `mongodb-linux-x86_64-rhel55-3.0.3/'
3.创建mongodb用户
[root@mongodb /]# useradd mongodb
4.创建相应文件目录并修改权限
[root@mongodb /]# mkdir /data/db -p [root@mongodb /]# chown mongodb:mongodb /data/ -R [root@mongodb opt]# chown -R mongodb:mongodb /opt/*
5.添加PATH环境变量在shell下正常访问mongodb的应用工具
[root@mongodb bin]# vim /etc/profile.d/mongodb.sh export PATH=$PATH:/opt/mongodb/bin [root@mongodb bin]# source /etc/profile.d/mongodb.sh [root@mongodb bin]# echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/opt/mongodb/bin
6.创建mongodb的PID存放目录
[root@mongodb run]# mkdir /var/run/mongodb [root@mongodb run]# chown mongodb:mongodb /var/run/mongodb/ -R [root@mongodb opt]# mongod --dbpath /data/db/ --logpath /var/log/mongodb.log --logappend --port 27017 --pidfilepath /var/run/mongodb/mongodb.pid --maxConns 250 --rest --httpinterface --fork about to fork child process, waiting until server is ready for connections. forked process: 4060 child process started successfully, parent exiting --maxConns 250 :表示最大连接数是250个 --rest --httpinterface : web接口,指定这项28017端口才能启用 --fork :后台运行
7.安装过程中遇见的问题
装好之后连接出现以下警告
(1).[root@mongodb ~]# mongo MongoDB shell version: 3.0.3 connecting to: test Server has startup warnings: 2015-06-15T20:27:49.892+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended. 2015-06-15T20:27:49.892+0800 I CONTROL [initandlisten]
出现这个问题就查看关于mongodb的文件权限,主要是/opt /data/db/ /var/run/mongodb/ /var/log/mongodb.log的权限因为启动初始化时以root用户的权限在运行,所以这些目录下的权限可能会变成root root
(2).[mongodb@mongodb db]$ mongod --dbpath /data/db/ --logpath /var/log/mongodb.log --logappend --port 27017 --pidfilepath /var/run/mongodb/mongodb.pid --maxConns 250 --rest --httpinterface --fork 2015-06-15T17:41:25.721+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2015-06-15T17:41:25.721+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2015-06-15T17:41:25.721+0800 I CONTROL [initandlisten] 2015-06-15T17:41:25.721+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2015-06-15T17:41:25.721+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
修改两个参数即可
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
8.安装成功并登录
[root@mongodb ~]# ss -tanlp | grep mongod
0 0 *:27017 *:* users:(("mongod",4095,6))
0 0 *:28017 *:* users:(("mongod",4095,8))
[root@mongodb ~]# mongo
MongoDB shell version: 3.0.3
connecting to: test
> help
db.help() help on db methods
db.mycoll.help() help on collection methods
sh.help() sharding helpers
rs.help() replica set helpers
help admin administrative help
help connect connecting to a db help
help keys key shortcuts
help misc misc things to know
help mr mapreduce
show dbs show database names
show collections show collections in current database
show users show users in current database
show profile show most recent system.profile entries with time >= 1ms
show logs show the accessible logger names
show log [name] prints out the last segment of log in memory, 'global' is default
use set current database
db.foo.find() list objects in collection foo
db.foo.find( { a : 1 } ) list objects in foo where a == 1
it result of the last line evaluated; use to further iterate
DBQuery.shellBatchSize = x set default number of items to display on shell
exit quit the mongo shell 登录web接口 28017端口

9.关闭服务器
(1).[root@mongodb ~]# mongod --shutdown killing process with pid: 3936 (2).[root@mongodb ~]# killall mongod
10.给mongodb编写配置文件/etc/mongodb.conf
[root@mongodb ~]# grep -v ^# /etc/mongodb.conf logpath=/var/log/mongodb.log logappend=true fork = true dbpath=/data/db pidfilepath = /var/run/mongodb/mongodb.pid rest = true httpinterface = true
启动
[root@mongodb ~]# mongod -f /etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 4169
child process started successfully, parent exiting
[root@mongodb ~]# ss -tanlp | grep mongod
0 0 *:27017 *:* users:(("mongod",4169,6))
0 0 *:28017 *:* users:(("mongod",4169,8))11.用service mongodb * 来启动mongodb
启动脚本:/etc/rc.d/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
CONFIGFILE="/etc/mongodb.conf"
OPTIONS=" -f $CONFIGFILE"
SYSCONFIG="/etc/sysconfig/mongod"
DBPATH=`awk -F= '/^dbpath=/{print $2}' "$CONFIGFILE"`
PIDFILE=`awk -F= '/^dbpath\s=\s/{print $2}' "$CONFIGFILE"`
mongod=${MONGOD-/opt/mongodb/bin/mongod}
MONGO_USER=mongodb
MONGO_GROUP=mongodb
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 /opt/mongodb/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测试启动
[root@mongodb ~]# service mongod start
Starting mongod: about to fork child process, waiting until server is ready for connections.
forked process: 4426
child process started successfully, parent exiting
[ OK ]
[root@mongodb init.d]# ss -tanlp | grep mongod
0 0 *:27017 *:* users:(("mongod",4426,6))
0 0 *:28017 *:* users:(("mongod",4426,8))
[root@mongodb ~]# mongo
MongoDB shell version: 3.0.3
connecting to: test
>
[root@mongodb ~]# service mongod start
Starting mongod: about to fork child process, waiting until server is ready for connections.
forked process: 4426
child process started successfully, parent exiting
[ OK ]
[root@mongodb ~]# service mongod stop
Stopping mongod: [ OK ]