Ubuntu20系統上離線安裝MongoDB
準備工作:下載安裝包及依賴?
下載MongoDB二進制包?
在聯網環境中訪問MongoDB官網,選擇以下配置:
下載地址:https://www.mongodb.com/try/download/community
- ?Version?:需與目標系統兼容(如Ubuntu 20.04) ?
- Platform?:Linux x86_64
- Package?:TGZ格式(例如mongodb-linux-x86_64-ubuntu2004-6.0.12.tgz)
?傳輸安裝包到目標服務器
安裝與配置?
解壓安裝包?
登錄目標服務器后執行:
cd /tmp
tar -zxvf mongodb-linux-*.tgz -C /opt # 解壓到/opt目錄
mv /opt/mongodb-linux-* /opt/mongodb
配置環境變量?
將MongoDB二進制路徑加入系統環境變量:
echo 'export PATH=/opt/mongodb/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
?創建數據與日志目錄
sudo mkdir -p /data/db # 數據存儲目錄
sudo mkdir -p /var/log/mongodb # 日志目錄
sudo chown -R `whoami` /data/db /var/log/mongodb # 賦權當前用戶
啟動MongoDB服務
創建配置文件/etc/mongod.conf:
systemLog:destination: filepath: /var/log/mongodb/mongod.loglogAppend: true
storage:dbPath: /data/dbjournal:enabled: true
net:bindIp: 0.0.0.0port: 27017
processManagement:fork: true
security: # 啟用身份驗證authorization: enabled
啟動服務
mongod -f /etc/mongod.conf
重啟服務
pkill mongod
mongod -f /etc/mongod.conf
查看進程
sudo lsof-i:27017
創建用戶
?創建管理員用戶
mongo
use admin
db.createUser({user: "admin",pwd: "password", roles: ["root"],mechanisms: ["SCRAM-SHA-256"], passwordDigestor: "server"
})
創建數據庫用戶
const USER="user";
const PASSWORD= "password"; //Randomly generated passworddb.createUser({user: USER,pwd: PASSWORD,roles: [{"role":"dbOwner","db":"zking"}],/* All built-in Roles Database User Roles: read|readWriteDatabase Admin Roles: dbAdmin|dbOwner|userAdminCluster Admin Roles: clusterAdmin|clusterManager|clusterMonitor|hostManagerBackup and Restoration Roles: backup|restoreAll-Database Roles: readAnyDatabase|readWriteAnyDatabase|userAdminAnyDatabase|dbAdminAnyDatabaseSuperuser Roles: root */// authenticationRestrictions: [ {// clientSource: ["192.0.2.0"],// serverAddress: ["198.51.100.0"]// } ],mechanisms: ["SCRAM-SHA-256"], passwordDigestor: "server",}
)const URI= mb.getUserConnectionURI({user:USER, password: PASSWORD, authDb: "zking"});
mb.writeTextToClipboardAndNotify(URI);print("URI for "+USER,":", URI)
備份和還原
更新MongoDB工具鏈
wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2004-x86_64-100.7.4.deb
sudo dpkg -i mongodb-database-tools-*.deb
還原數據庫
確保數據路徑包含有效數據文件(.bson和 .json),且當前用戶有讀取權限:
sudo chmod -R 755 /data/project/zking
還原
#寫入的用戶密碼不要使用特殊字符
mongorestore -u admin -p 'password' --authenticationDatabase admin --db zking /data/zking
擴展場景命令?
- ?僅恢復特定集合?(如 users)
mongorestore -u admin -p 'password' --authenticationDatabase admin \--db zking --nsInclude "zking.users" \/data/zking
- 從壓縮備份恢復?(若備份時使用了 --gzip)
mongorestore -u admin -p 'password' --authenticationDatabase admin \--db zking --gzip \/data/zking
- 遠程恢復且不覆蓋現有數據?
mongorestore --host 192.168.1.2 -u admin -p 'password' \--authenticationDatabase admin --db zking \/data/zking