Linux安裝mongoDB__Linux

來源:互聯網
上載者:User

環境:viretualBox Redhat7.0   mongoDb3.6

步驟:

1.安裝虛擬機器:詳細請查看Linux安裝ReaHat  基本是下一步下一步即可

2.安裝MongoDb

需要工具Xshell,如果自己沒有請聯絡我給你發送

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

      使用xshell工具將安裝包拷貝到虛擬機器中

      解壓安裝包    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 runsprocessManagement:  fork: true  # fork and run in background  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile# network interfacesnet:  port: 27017  bindIp: 127.0.0.1  # Listen to local 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=mongodMONGO_GROUP=mongodif [ -f "$SYSCONFIG" ]; then    . "$SYSCONFIG"fiPIDDIR=`dirname $PIDFILEPATH`# Handle NUMA access to CPUs (SERVER-3574)# This verifies the existence of numactl as well as testing that the command worksNUMACTL_ARGS="--interleave=all"if which numactl >/dev/null 2>/dev/null && numactl $NUMACTL_ARGS ls / >/dev/null 2>/dev/nullthen    NUMACTL="numactl $NUMACTL_ARGS"else    NUMACTL=""fistart(){  # 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  # See http://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 of Linux# where it sleeps for the full $delay seconds if process does not respond fast enough 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=0case "$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=1esacexit $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.confDec 15 23:34:49 localhost.localdomain systemd[1]: Starting SYSV: Mongo is 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 is a scalable, document-oriented database..

Mongodb編輯:

輸入mongo:

> db.foo.find();{ "_id" : ObjectId("5a34a3de8420293d5f46b0ee"), "name" : "xiaonanhai", "age" : "23" }> show dbs;admin   0.000GBconfig  0.000GBlocal   0.000GBtest    0.000GB> 



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.