mongodb安装配置实践-创新互联

  1. 首先从官网下载mongodb的安装包http://www.mongodb.org/downloads我的系统是redhat5.8所有选择相应的版本包就ok现在最新版是3.0.3

    创新互联公司主要从事成都做网站、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务成华,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
  2. 解压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端口

mongodb 安装配置实践

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  ]

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:mongodb安装配置实践-创新互联
URL标题:http://myzitong.com/article/jhhso.html