Linux下MongoDB安装和配置详解

来源:互联网 发布:猪哼少 知乎 编辑:程序博客网 时间:2024/05/21 01:48

1.下载安装包

将解压到/usr/local/mongodb 文件夹下

# mkdir /usr/local/mongodb# tar zxvf mongodb-linux-x86_64-3.2.9.tgz -C /usr/local/mongodb

2.安装准备

创建数据库文件与日志文件、配置文件:

# mkdir -p data/db# mkdir -p data/log# touch data/log/mongod.log# touch mongod.conf

mongod.conf配置文件如下:

#启用日志文件,默认启用journal=true#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为falsequiet=falsedbpath=/usr/local/mongodb/data/dblogpath=/usr/local/mongodb/data/log/mongod.loglogappend=true# 端口号默认27019,这里只是为了防止冲突port=27019# 是否以守护进程方式运行fork=true# 是否以安全认证方式运行,默认是不认证的非安全方式#auth = true#noauth = true# 详细记录输出#verbose = true# Inspect all client data for validity on receipt (useful for# developing drivers)用于开发驱动程序时验证客户端请求#objcheck = true# Enable db quota management# 启用数据库配额管理#quota = true# 设置oplog记录等级# Set oplogging level where n is#   0=off (default)#   1=W#   2=R#   3=both#   7=W+some reads#diaglog=0# Diagnostic/debugging option 动态调试项#nocursors = true# Ignore query hints 忽略查询提示#nohints = true# 禁用http界面,默认为localhost:28017#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# 为新数据库指定.ns文件的大小,单位:MB# Specify .ns file size for new databases.# nssize = # Replication Options 复制选项# in replicated mongo databases, specify the replica set name here#replSet=setname# maximum size in megabytes for replication operation log#oplogSize=1024# path to a key file storing authentication info for connections# between replica set members#指定存储身份验证信息的密钥文件的路径#keyFile=/path/to/keyfile

3.启动mongodb

  • 配置启动:
# cd bin# ./mongod -config ../mongod.conf
  • 参数启动
# ./mongod --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/data/log/mongodb.log --logappend -port=27019 --fork

注:如果加权限就用 –auth 参数,不需要权限就去掉

  • 系统服务启动:
# service mongod srart|stop|restart

将mongod服务添加为系统服务

1.创建文件

linux系统服务启动文件都存放在 /etc/init.d/ 下面,service mongod start 这样的命令是通过运行该目录下的脚本实现管理的,所以需要创建一个脚本文件mongod并修改读写权限

# cd /etc/init.d# touch mongod# chmod 755 mongod

另外还需要用到一个文件来保存服务pid,service mongod stop 命令就是通过这个文件读取服务pid的,可以建立在MongoDB的安装目录下面,

# cd /usr/local/mongodb/# touch mongod.pid# chmod 755 mongod.pid
2.编写mongod脚本,以下为脚本实例:
##-----------------------------------------#!/bin/bash     #chkconfig:35 23 34   #description: MongoDB  service#set -xif [ -f  /etc/init.d/functions ] ; then##载入functions,. 在这里相当于source的功能. /etc/init.d/functions     fi##服务名,会多处调用prog=mongod  ##状态返回值,functions 函数会调用这个值RETVAL=0  mongod=/usr/local/mongodb/bin/mongodMONGODB_CONF_FILE=/usr/local/mongodb/mongod.conflockfile=/var/lock/subsys/${prog}  ##subsys目录下的文件是用于给其他程序判断服务的实例运行状态的pidfile=/usr/local/mongodb/mongod.pidstart() {      echo  -n $"Starting $prog: "      daemon $mongod  --config $MONGODB_CONF_FILE ##daemon调用后面的命令执行情况  pgrep mongod>${pidfile}  ##写入pid到pidfile      RETVAL=$?      echo       [ $RETVAL  -eq  0  ] &&  touch ${lockfile}      return $RETVAL}stop () {      echo  -n $"Stopping $prog: "      killproc -p ${pidfile}   ##killproc 从pidfile 获取到pid,并杀死      RETVAL=$?      echo       [ $RETVAL  -eq  0  ] &&  /bin/rm -f ${lockfile}      return $RETVAL}case $1 in start) start;;stop)stop;;restart)stopstart;;*)echo $"Usage: $0 {start|stop|restart}"exit 2;;esacexit $?##-----------------------------------------

通过这个脚本可以实现系统服务启动、关闭、重启mongod服务了,然后我们可以让他开机启动:

# chkconfig mongod on

注:可以将mongodb临时加入系统路径变量中,这样可以不用输入路径直接启动,代码如下:

# export PATH=/usr/local/mongodb/bin:$PATH

然后查看是否成功:

# echo $PATH
  • 配置参数解释:

–dbpath 数据库路径(数据文件)
–logpath 日志文件路径
–master 指定为主机器
–slave 指定为从机器
–source 指定主机器的IP地址
–pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。
–logappend 日志文件末尾添加
–port 启用端口号
–fork 在后台运行
–only 指定只复制哪一个数据库
–slavedelay 指从复制检测的时间间隔
–auth 是否需要验证权限登录(用户名和密码)
–config 配置文件位置


用户授权和管理

//TODO
由于博主还未正常配置,所以。。。下次更新啦。。。

最后祝大家生活愉快(^__^) …..

原创粉丝点击