MongoDB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。
系统约定
mongodb源码路径:/usr/local/src
mongodb安装路径为/usr/local/mongodb
mongodb配置文件路径:/etc/mongod.conf
mongodb数据库路径:/data/mongodb
mongodb日志文件路径:/var/log/mongodb
创建mongod用户和组
# groupadd mongodb # useradd -g mongodb -c "mongodb" -d /var/lib/mongodb -s /bin/false mongodb
下载
# cd /usr/local/src/ # wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz
解压缩
# tar zxvf mongodb-linux-x86_64-2.4.9.tgz # mv mongodb-linux-x86_64-2.4.9 /usr/local/mongodb
创建数据库目录
# mkdir -p /data/mongodb # chown -R mongodb:mongodb /data/mongodb/
创建日志目录
# mkdir -p /var/log/mongodb # chown -R mongodb:mongodb /var/log/mongodb/
创建配置文件
# vim /etc/mongod.conf
将以下内容复制粘贴到文件中
# mongo.conf #where to log logpath=/var/log/mongodb/mongod.log logappend=true # each database will be stored in a separate directory directoryperdb=true # fork and run in background fork = true #port = 27017 dbpath=/data/mongodb # location of pidfile pidfilepath = /data/mongodb/mongod.pid # Disables write-ahead journaling # nojournal = true # Enables periodic logging of CPU utilization and I/O wait #cpu = true # Turn on/off security. Off is currently the default #noauth = true #auth = true # Verbose logging output. #verbose = true # Inspect all client data for validity on receipt (useful for # developing drivers) #objcheck = true # Enable db quota management #quota = true # Set oplogging level where n is # 0=off (default) # 1=W # 2=R # 3=both # 7=W+some reads #diaglog = 0 # Ignore query hints #nohints = true # Disable the HTTP interface (Defaults to localhost:27018). #nohttpinterface = true # Turns off server-side scripting. This will result in greatly limited # functionality #noscripting = true # Turns off table scans. Any query that would do a table scan fails. #notablescan = true # Disable data file preallocation. #noprealloc = true # Specify .ns file size for new databases. # nssize = # Accout token for Mongo monitoring server. #mms-token = # Server name for Mongo monitoring server. #mms-name = # Ping interval for Mongo monitoring server. #mms-interval = # Replication Options # in replicated mongo databases, specify here whether this is a slave or master #slave = true #source = master.123admin.com # Slave only: specify a single database to replicate #only = master.123admin.com # or #master = true #source = slave.123admin.com
创建开机启动脚本
# vim /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. CONFIGFILE="/etc/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-/usr/local/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 /usr/local/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
配置mongodb开机启动
# chmod u+x /etc/init.d/mongod # chkconfig mongod on
配置环境变量
# sed -i '/unset -f pathmunge/a\export PATH=$PATH:/usr/local/mongodb/bin' /etc/profile # source /etc/profile
启动mongodb
# serivce mongod start
关闭mongodb
# service mongod stop
重启mongodb
# service mongod restart