在阿里雲上買了個伺服器,部署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啟動異常