zoukankan      html  css  js  c++  java
  • Linux下MongoDB安装和配置详解

    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
    
    #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
    
    quiet=false
    
    dbpath=/usr/local/mongodb/data/db
    
    logpath=/usr/local/mongodb/data/log/mongod.log
    
    logappend=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 -x
    
    if [ -f  /etc/init.d/functions ] ; then
    ##载入functions,. 在这里相当于source的功能
    . /etc/init.d/functions     
    fi
    
    ##服务名,会多处调用
    prog=mongod  
    
    ##状态返回值,functions 函数会调用这个值
    RETVAL=0  
    
    mongod=/usr/local/mongodb/bin/mongod
    
    MONGODB_CONF_FILE=/usr/local/mongodb/mongod.conf
    
    lockfile=/var/lock/subsys/${prog}  ##subsys目录下的文件是用于给其他程序判断服务的实例运行状态的
    
    pidfile=/usr/local/mongodb/mongod.pid
    
    start() {
          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)
    stop
    start
    ;;
    
    *)
    echo $"Usage: $0 {start|stop|restart}"
    exit 2
    ;;
    esac
    
    exit $?
    ##-----------------------------------------

    通过这个脚本可以实现系统服务启动、关闭、重启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
    由于博主还未正常配置,所以。。。下次更新啦。。。

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

  • 相关阅读:
    Windows下使用Visual Studio Code搭建Go语言环境
    无缓冲和带缓冲channel的区别
    Asp.Net MVC如何返回401响应码
    从这里开始我的博客园
    java判定字符串中仅有数字和- 正则表达式匹配 *** 最爱那水货
    主席树
    Mybitis+springMVC 套路
    jeeplus ani 文档路径
    jquery easyui datagrid 多选只能获取一条数据
    python写入文件编码报错
  • 原文地址:https://www.cnblogs.com/lyjing/p/7571006.html
Copyright © 2011-2022 走看看