美文网首页
linux 安装 mongodb

linux 安装 mongodb

作者: 范er_er | 来源:发表于2020-06-08 13:47 被阅读0次

    1.首先需要安装相关软件包

    wget [https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.1.tgz](https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.1.tgz)
    tar zxf mongodb-linux-x86_64-rhel62-4.0.2.tgz
    mv mongodb-linux-x86_64-rhel62-4.0.2 /usr/local/mongodb
    

    2.创建MongoDB的数据存储目录/data/mogodb1,日志存储目录/data/logs,以及日志文件/data/logs/mongodb/mongodb1.log

    mkdir -p /data/mongodb1
    mkdir -p /data/logs/mongodb
    touch /data/logs/mongodb/mongodb1.log
    chmod -R 777 /data/logs/mongodb/mongodb1.log
    

    当MongoDB处于频繁访问的状态时,如果shell启动进程所占用的资源设置过低的话,将会产生错误导致无法连接到MongoDB实例。需设置ulimit -n和ulimit -u的值大于20000。

    ulimit -n 25000
    ulimit -u 25000
    

    3.创建MongoDB配置文件,定义启动所需相关参数

    ​
    cd /usr/local/mongodb/bin/
    vim mongodb.conf
      #!/bin/bash
      port=27017                                #默认服务器端口号
      dbpath=/data/mongodb1                      #数据存储目录
      logpath=/data/logs/mongodb/mongodb1.log    #日志文件
      logappend=true                             #使用追加的方式写日志
      fork=true                                  #后台运行
      maxConns=5000                              #最大同时连接数,默认2000
      storageEngine=mmapv1                      #指定存储引擎为内存映射文件
     bind_ip=0.0.0.0                   #默认是127.0.0.1,开启远程访问
     #auth=true(这项暂时不动,因为涉及到auth认证,调试好所有的mongodb的问题后在来弄权限)
    

    需要注意:在之前编写MongoDB启动所需的配置文件时,要指定storageEngine为内存映射文件,才会出现.ns文件,如果没有添加storageEngine=mmapv1这行,会被记录为.wt文件。
    4.添加防火墙规则

    iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT
    service iptables save
    

    5.设置内核参数,关闭NUMA

    echo 0 >/proc/sys/vm/zone_reclaim_mode            //当某个节点可用内存不足时系统会从其他节点分配内存
    sysctl -w vm.zone_reclaim_mode=0                  //永久设置
    

    添加mongodb环境:

    cd /etc/profile
    在文件最后一行添加:
    export MONGODB_HOME=/usr/local/mongodb
    export PATH=$PATH:$MONGODB_HOME/bin
    source /etc/profile(立即生效)
    

    启动MongoDB

    /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
    netstat -anpt | grep mongod
    tcp        0      0 127.0.0.1:27017             0.0.0.0:*                   LISTEN      33475/mongod
    

    停止MongoDB的方法

    ps aux | grep mongod
    root      33475  0.3 10.0 1537520 100864 ?      Sl   04:29   0:00 /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
    kill -2 33475
    或者
    /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf –shutdown
    

    设置为开机自动启动

    vim /etc/rc.local
      rm -rf /data/mongodb1/mongod.lock
      /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf​
    

    尝试访问MongoDB

    /usr/local/mongodb/bin/mongo    就是MongoDB的客户端
    /usr/local/mongodb/bin/mongo​
    

    进入MongoDB之后也可以这样关闭mongoDB

    use admin;
    db.shutdownServer();
    

    启动多实例

    在单台服务器资源充分的情况下,可以使用多实例,以便充分使用服务器资源。

    cd /usr/local/mongodb/bin/
    cp mongodb.conf mongodb2.conf
     
    vim /usr/local/mongodb/bin/mongodb2.conf
      #!/bin/bash
      port=27018                           //定义第二个实例服务端口号
      dbpath=/data/mongodb2              //定义第二个实例数据存储目录
      logpath=/data/logs/mongodb/mongodb2.log        //定义第二个实例日志文件
      logappend=true
      fork=true
      maxConns=5000
      storageEngine=mmapv1
    

    创建相关目录

    mkdir /data/mongodb2
    touch /data/logs/mongodb/mongodb2.log
    chmod -R 777 /data/logs/mongodb/mongodb2.log
    cd /usr/local/mongodb/bin/
    ./mongod -f mongodb.conf
    ./mongod -f mongodb2.conf
     
    netstat -anpt | grep mongod
    tcp        0      0 127.0.0.1:27017             0.0.0.0:*                   LISTEN      2708/./mongod      
    tcp        0      0 127.0.0.1:27018             0.0.0.0:*                   LISTEN      2729/./mongod
    

    为了便于运维人员管理,编写一个MongoDB数据库的控制脚本

    vim /etc/init.d/mongod
     
      #!/bin/bash
      # chkconfig: - 99 20
      PROG="/usr/local/mongodb/bin/mongod"
      CONFIG=$1
      CONF="/usr/local/mongodb/bin/$CONFIG.conf"
      case "$2" in
       start)
        $PROG -f $CONF
        ;;
       stop)
        $PROG -f $CONF --shutdown
        ;;
       restart)
       $0 stop
       $0 start
       ;;
       *)
         echo "用法: $0 {start|stop|restart}"
         exit 2
      esac
      exit 0
    
    chmod +x /etc/init.d/mongod
    chkconfig --add mongod
    service mongod mongodb start
    service mongod mongodb2 start
    

    相关文章

      网友评论

          本文标题:linux 安装 mongodb

          本文链接:https://www.haomeiwen.com/subject/gjoltktx.html