您好,登錄后才能下訂單哦!
首先從官網(wǎng)下載mongodb的安裝包http://www.mongodb.org/downloads我的系統(tǒng)是redhat5.8所有選擇相應(yīng)的版本包就ok現(xiàn)在最新版是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.創(chuàng)建mongodb用戶
[root@mongodb /]# useradd mongodb
4.創(chuàng)建相應(yīng)文件目錄并修改權(quán)限
[root@mongodb /]# mkdir /data/db -p [root@mongodb /]# chown mongodb:mongodb /data/ -R [root@mongodb opt]# chown -R mongodb:mongodb /opt/*
5.添加PATH環(huán)境變量在shell下正常訪問mongodb的應(yīng)用工具
[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.創(chuàng)建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 :表示最大連接數(shù)是250個(gè) --rest --httpinterface : web接口,指定這項(xiàng)28017端口才能啟用 --fork :后臺(tái)運(yùn)行
7.安裝過程中遇見的問題
裝好之后連接出現(xiàn)以下警告
(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]
出現(xiàn)這個(gè)問題就查看關(guān)于mongodb的文件權(quán)限,主要是/opt /data/db/ /var/run/mongodb/ /var/log/mongodb.log的權(quán)限因?yàn)閱?dòng)初始化時(shí)以root用戶的權(quán)限在運(yùn)行,所以這些目錄下的權(quán)限可能會(huì)變成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'
修改兩個(gè)參數(shù)即可
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 <db_name> 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.關(guān)閉服務(wù)器
(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
啟動(dòng)
[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 * 來啟動(dòng)mongodb
啟動(dòng)腳本:/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
測(cè)試啟動(dòng)
[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 ]
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。