首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Linux 下 MongoDB 安裝與啟動完整指南(二進位包部署)

     編輯:更多程式設計知識

本文記錄在 Linux 伺服器上使用官方二進位壓縮包(tarball)部署 MongoDB Community Edition 的標準流程,涵蓋解壓、目錄規劃、啟動參數、驗證與常見問題,適合無套件管理器或需自訂安裝路徑的環境。

1. 下載與解壓


# 範例:MongoDB 4.4+(請至官網確認最新版本連結)
cd /opt
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.12.tgz
tar -zxvf mongodb-linux-x86_64-rhel80-6.0.12.tgz
mv mongodb-linux-x86_64-rhel80-6.0.12 mongodb-6.0.12
ln -s mongodb-6.0.12 mongodb  # 方便版本切換

2. 目錄規劃


mkdir -p /data/mongodb/{data,logs}
# 建議由專用使用者運行
useradd -r -s /sbin/nologin mongodb
chown -R mongodb:mongodb /data/mongodb /opt/mongodb-6.0.12

3. 配置檔(/etc/mongod.conf)


# /etc/mongod.conf
systemLog:
  destination: file
  path: /data/mongodb/logs/mongod.log
  logAppend: true
storage:
  dbPath: /data/mongodb/data
  journal:
    enabled: true
  wiredTiger:
    engineConfig:
      cacheSizeGB: 2  # 依實體記憶體調整,通常 50%-60%
net:
  port: 27017
  bindIp: 127.0.0.1,10.0.0.5  # 內網 IP,生產勿綁 0.0.0.0
processManagement:
  fork: true
  pidFilePath: /var/run/mongodb/mongod.pid
  timeZoneInfo: /usr/share/zoneinfo
# security:
#   authorization: enabled  # 啟用認證後再取消註解

4. 啟動與驗證


# 建立 pid 目錄
mkdir -p /var/run/mongodb
chown mongodb:mongodb /var/run/mongodb

# 以 mongodb 使用者啟動
sudo -u mongodb /opt/mongodb/bin/mongod -f /etc/mongod.conf

# 檢查日誌
tail -f /data/mongodb/logs/mongod.log
# 看到 "Waiting for connections on port 27017" 即成功

# 連線測試
/opt/mongodb/bin/mongo --host 127.0.0.1 --port 27017 --eval "db.runCommand({ping:1})"

5. Systemd 服務化(生產環境建議)


# /etc/systemd/system/mongod.service
[Unit]
Description=MongoDB Database Server
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
Environment="OOM_SCORE_ADJ=-1000"
ExecStart=/opt/mongodb/bin/mongod -f /etc/mongod.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5
LimitFSIZE=infinity
LimitCPU=infinity
LimitAS=infinity
LimitNOFILE=64000
LimitNPROC=64000
LimitMEMLOCK=infinity
TasksMax=infinity

[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl enable --now mongod
systemctl status mongod

6. 常見問題排查

現象原因與解決
啟動即退出,日誌提示 "NonExistentPath: Data directory not found"dbPath 目錄不存在或權限錯誤,檢查 mkdir/chown
連線被拒絕bindIp 未包含客戶端 IP、防火牆阻擋、mongod 未啟動
記憶體不足 OOM Killer 終止進程調整 wiredTiger cacheSizeGB、關閉透明大頁、設定 ulimit
啟動報 "Address already in use"端口被佔用,檢查是否已有 mongod 進程或其他服務佔用 27017
權限錯誤 "Permission denied" 寫入日誌/資料目錄擁有者非啟動使用者,遞迴 chown

7. 關鍵維護指令


# 關閉(優雅)
sudo -u mongodb /opt/mongodb/bin/mongod --shutdown -f /etc/mongod.conf
# 或
mongo admin --eval "db.shutdownServer()"

# 備份(熱備份)
mongodump --host 127.0.0.1:27017 --db mydb --out /backup/mongodump-$(date +%F)

# 還原
mongorestore --host 127.0.0.1:27017 --db mydb /backup/mongodump-2024-01-15/mydb

# 修復(損壞修復,需停機)
mongod --repair --dbpath /data/mongodb/data

採用二進位包部署可完全掌控版本與路徑,配合 systemd 與標準配置檔,即可建立穩定、可維運的 MongoDB 生產節點。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved