温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux中怎么安装MongoDB

发布时间:2021-07-16 15:55:58 来源:亿速云 阅读:212 作者:Leah 栏目:大数据

本篇文章给大家分享的是有关Linux中怎么安装MongoDB,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1.安装MongoDB

       mongoDB的tar包下载地址:https://www.mongodb.com/download-center#atlas

     解压安装包   tar -zxvf     xxxxxxxxxx.tar

     移动到安装目录   mv mongodb-linux-x86_64-xxx    /usr/local/mongodb

      添加环境变量   echo "export PATH=\$PATH:/usr/local/mongodb/bin【解压后移动过去会存在一个目录,所以需要配置】" > /etc/profile.d/mongodb.sh    (这个里面要小心了!)

     使环境变量生效   source /etc/profile.d/mongodb.sh

     创建Mongodb用户和组  useradd -r -M -s /sbin/nologin mongod

    ***创建启动数据库和启动日志 mkdir -p /data/mongodb/{db,log}/

     修改权限        chown -R mongod:mongod/data/mongodb/

     配置mongoDB配置文件:    vi /etc/mongod.conf

    #mongod.conf

    #for documentation of all options, see:

   #  http://docs.mongodb.org/manual/reference/configuration-options/

    #where to write logging data.

   systemLog:

     destination: file

     logAppend: true

     path: /data/mongodb/log/mongod.log

    #Where and how to store data.

   storage:

     dbPath: /data/mongodb/db

     journal:

       enabled: true

   #  engine:

   #  mmapv1:

   #  wiredTiger:

    #how the process runs

   processManagement:

     fork: true  # fork and run inbackground

     pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile

    #network interfaces

   net:

     port: 27017

     bindIp: 127.0.0.1  # Listen tolocal interface only, comment to listen on all interfaces.

   #security:

   #operationProfiling:

   #replication:

   #sharding:

   ## Enterprise-Only Options

   #auditLog:

   #snmp:

备注:

如果MongoDB端口不在27017-27019,28017-28019之间,需要执行以下步骤:

# yum -y install policycoreutils-python

# semanage port -a -t mongod_port_t -p tcp<port_number>   27017

创建MongoDB自启动脚本     vi /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/mongodb/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"

   PIDFILEPATH=`awk -F'[:=]' -v IGNORECASE=1'/^[[:blank:]]*(processManagement\.)?pidfilepath[[:blank:]]*[:=][[:blank:]]*/{print$2}' "$CONFIGFILE" | tr -d "[:blank:]\"'" | cut -d"#" -f 1`

   mongod=${MONGOD-/usr/local/mongodb/bin/mongod}

   MONGO_USER=mongod

   MONGO_GROUP=mongod

   if [ -f "$SYSCONFIG" ]; then

       . "$SYSCONFIG"

   fi

   PIDDIR=`dirname $PIDFILEPATH`

    #Handle NUMA access to CPUs (SERVER-3574)

    #This verifies the existence of numactl as well as testing that the commandworks

   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()

    {

     # Make sure the default pidfile directory exists

     if [ ! -d $PIDDIR ]; then

       install -d -m 0755 -o $MONGO_USER -g $MONGO_GROUP $PIDDIR

     fi

     # Recommended ulimit values for mongod or mongos

     # Seehttp://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

     #

     ulimit -f unlimited

     ulimit -t unlimited

     ulimit -v unlimited

     ulimit -n 64000

     ulimit -m unlimited

     ulimit -u 64000

     echo -n $"Starting mongod: "

     daemon --user "$MONGO_USER" --check $mongod "$NUMACTL$mongod $OPTIONS >/dev/null 2>&1"

     RETVAL=$?

     echo

     [ $RETVAL -eq 0 ] && touch /var/lock/subsys/mongod

    }

   stop()

    {

     echo -n $"Stopping mongod: "

     mongo_killproc "$PIDFILEPATH" $mongod

     RETVAL=$?

     echo

     [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/mongod

    }

   restart () {

           stop

           start

    }

    #Send TERM signal to process and wait up to 300 seconds for process to go away.

    #If process is still alive after 300 seconds, send KILL signal.

    #Built-in killproc() (found in /etc/init.d/functions) is on certain versions ofLinux

    #where it sleeps for the full $delay seconds if process does not respond fastenough to

    #the initial TERM signal.

   mongo_killproc()

    {

     local pid_file=$1

     local procname=$2

     local -i delay=300

     local -i duration=10

     local pid=`pidofproc -p "${pid_file}" ${procname}`

     kill -TERM $pid >/dev/null 2>&1

     usleep 100000

     local -i x=0

     while [ $x -le $delay ] && checkpid $pid; do

       sleep $duration

       x=$(( $x + $duration))

     done

     kill -KILL $pid >/dev/null 2>&1

     usleep 100000

     checkpid $pid # returns 0 only if the process exists

     local RC=$?

     [ "$RC" -eq 0 ] && failure "${procname}shutdown" || rm -f "${pid_file}"; success "${procname}shutdown"

     RC=$((! $RC)) # invert return code so we return 0 when process is dead.

     return $RC

    }

   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 +x /etc/init.d/mongod

   chkconfig mongod on

    启动MongoDB服务

   service mongod start

如果启动不成功:

   主要查看     启动脚本 .sh 文件中的配置的环境变量是否正确,  同时查看db  log的权限是否是脚本中配置的用户和组,同时可执行,我给的777

验证启动成功:

service mongod status

   mongod.service - SYSV: Mongo is a scalable, document-oriented database.

      Loaded: loaded (/etc/rc.d/init.d/mongod)

      Active: active (running) since Fri 2017-12-15 23:34:50 EST; 31min ago

     Process: 7648 ExecStop=/etc/rc.d/init.d/mongod stop (code=exited,status=0/SUCCESS)

     Process: 7677 ExecStart=/etc/rc.d/init.d/mongod start (code=exited,status=0/SUCCESS)

    Main PID: 7688 (mongod)

      CGroup: /system.slice/mongod.service

               └─7688/usr/local/mongodb/mongodb-linux-x86_64-3.6.0/bin/mongod -f /etc/mongod.conf

   Dec 15 23:34:49 localhost.localdomain systemd[1]: Starting SYSV: Mongois a scalable, document-oriented database....

   Dec 15 23:34:49 localhost.localdomain runuser[7684]:pam_unix(runuser:session): session opened for user mongod by (uid=0)

   Dec 15 23:34:50 localhost.localdomain mongod[7677]: Starting mongod:[  OK ]

   Dec 15 23:34:50 localhost.localdomain systemd[1]: Started SYSV: Mongo isa scalable, document-oriented database..

Mongodb编辑:

输入mongo:

   > db.foo.find();

    {"_id" : ObjectId("5a34a3de8420293d5f46b0ee"),"name" : "xiaonanhai", "age" : "23" }

   > show dbs;

   admin   0.000GB

   config  0.000GB

   local   0.000GB

   test    0.000GB

   >

END


以上就是Linux中怎么安装MongoDB,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI