美文网首页
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