阿里雲伺服器部署mongodb

木子草明發表於2021-09-02

在阿里雲上買了個伺服器,部署mongodb遇到一些坑,解決辦法也是從網上搜集而來,把零零碎碎的整理記錄一下。

伺服器是:Alibaba Cloud Linux

下載安裝

mongodb官網下載實在是太慢,可以從阿里映象安裝:阿里MongoDb映象
在這裡插入圖片描述

使用yum安裝

  • 在/etc/yum.repos.d目錄下新增mongodb-org.repo檔案
    cd /etc/yum.repos.d
    vim mongodb-org.repo
     
    [mogodb-org]
    name=MongoDB Repository
    baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/
    gpgcheck=0
    enabled=1
    
    vim命令:是編輯(新建)檔案的命令,退出編輯的時候,按esc,然後輸入 :wq退出報存。如果對linux命令不熟,用 Xftp 等工具直接上傳也可以。
    baseurl:在阿里映象中,點選下載地址後,選擇的mongodb的版本的連結,根據選擇的版本不同而不同,其他的不用變。
  • 用yum安裝
    yum -y install mongodb-org
    
    yum:linux下載包的命令,從上面新增的 .repo 檔案中的 baseurl地址開始下載。-y是為了免去安裝的確認操作。

配置

安裝完成了過後,找到配置mongodb的配置檔案

rpm -qla | grep mongod.conf	

在這裡插入圖片描述

  • 修改配置檔案
    vim /etc/mongod.conf
     
    # mongod.conf
    systemLog:
      destination: file
      logAppend: true
      path: /var/log/mongodb/mongod.log # 日誌檔案目錄
     
    # Where and how to store data.
    storage:
      dbPath: /var/lib/mongo # 資料目錄
      journal:
        enabled: true
    #  engine:
    #  mmapv1:
    #  wiredTiger:
     
    # how the process runs
    processManagement:
      fork: true  # fork and run in background
      pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
      timeZoneInfo: /usr/share/zoneinfo
     
    # network interfaces
    net:
      port: 27017 #埠
      # 修改ip
      bindIp: 0.0.0.0  # 這裡預設是127.0.0.1,要改成0.0.0.0
    
    主要修改點:bindIp值改為 0.0.0.0,這樣可以外網訪問
    如果對linux的指令不熟悉的,可以直接在 Xftp的工具裡面選中檔案,右鍵有編輯操作

執行

  • /etc/init.d資料夾中新增開機啟動指令碼mongod

    cd /etc/init.d
    vim mongod
    	 
    EXEC=/usr/bin/mongod 
    CONF=/etc/mongod.conf
    LOCKFILE=/var/lock/subsys/mongod
    RETVAL=0
    case "$1" in
        start)
            echo -n $"Starting mongod: "
            $EXEC -f $CONF
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ] && touch $LOCKFILE
            ;;
        stop)
            echo -n $"Stopping mongod: "
            $EXEC -f $CONF --shutdown
            RETVAL=$?
            echo
            [ $RETVAL -eq 0 ] && rm -f $LOCKFILE
            ;;
        restart)
            ${0} stop 
            ${0} start
            ;;
        *)
            echo "Usage: /etc/init.d/mongod {start|stop|restart}" >&2
            exit 1
    esac
    
  • 執行許可權

    # 獲取檔案許可權
    chmod +x /etc/init.d/mongodb
    
  • 啟動

    service mongod start
    
  • 停止

    service mongod stop
    
  • 重啟

    service mongod restart
    
  • 解除安裝

    # 停止服務
    service mongod stop
    # 刪除安裝的包
    yum erase $(rpm -qa | grep mongodb-org)
    # 刪除資料和日誌
    rm -rf /var/log/mongodb
    rm -rf /var/lib/mongo
    

驗證

  • 開啟埠
    mongodb預設埠為:27017,在配置檔案/etc/mongod.conf裡可以檢視
    在阿里雲後臺,防火牆開啟埠 在這裡插入圖片描述
  • 瀏覽器訪問
    ip:27017 訪問
    在這裡插入圖片描述

問題排查

  • 異常關閉時,手動關閉程式
    如果啟動失敗,可能是由於系統異常關閉,可能會有程式沒有退出

    #檢視mongodb的程式
    ps aux | grep mongod
    
    #根據查詢的結果pid,關閉程式
    kill -9 pid
    

    mongod.lock 和 diagnostic.data檔案刪掉

  • 自啟動失效
    如果mongodb自啟動,檢視配置檔案/etc/mongod.conf中fork配置是否有開啟:在這裡插入圖片描述

參考:
CentOS7使用阿里映象安裝mongodb4.0
mongodb啟動異常

相關文章