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)
传输安装包到目标服务器
安装与配置
解压安装包
登录目标服务器后执行:
bash
cd /tmp
tar -zxvf mongodb-linux-*.tgz -C /opt # 解压到/opt目录
mv /opt/mongodb-linux-* /opt/mongodb
配置环境变量
将MongoDB二进制路径加入系统环境变量:
bash
echo 'export PATH=/opt/mongodb/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
创建数据与日志目录
bash
sudo mkdir -p /data/db # 数据存储目录
sudo mkdir -p /var/log/mongodb # 日志目录
sudo chown -R `whoami` /data/db /var/log/mongodb # 赋权当前用户
启动MongoDB服务
创建配置文件/etc/mongod.conf:
yaml
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
storage:
dbPath: /data/db
journal:
enabled: true
net:
bindIp: 0.0.0.0
port: 27017
processManagement:
fork: true
security: # 启用身份验证
authorization: enabled
启动服务
bash
mongod -f /etc/mongod.conf
重启服务
bash
pkill mongod
mongod -f /etc/mongod.conf
查看进程
bash
sudo lsof-i:27017

创建用户
创建管理员用户
bash
mongo
use admin
db.createUser({
user: "admin",
pwd: "password",
roles: ["root"],
mechanisms: ["SCRAM-SHA-256"],
passwordDigestor: "server"
})
创建数据库用户
bash
const USER="user";
const PASSWORD= "password"; //Randomly generated password
db.createUser(
{
user: USER,
pwd: PASSWORD,
roles: [{"role":"dbOwner","db":"zking"}],
/* All built-in Roles
Database User Roles: read|readWrite
Database Admin Roles: dbAdmin|dbOwner|userAdmin
Cluster Admin Roles: clusterAdmin|clusterManager|clusterMonitor|hostManager
Backup and Restoration Roles: backup|restore
All-Database Roles: readAnyDatabase|readWriteAnyDatabase|userAdminAnyDatabase|dbAdminAnyDatabase
Superuser 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工具链
bash
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),且当前用户有读取权限:
bash
sudo chmod -R 755 /data/project/zking

还原
bash
#写入的用户密码不要使用特殊字符
mongorestore -u admin -p 'password' --authenticationDatabase admin --db zking /data/zking
扩展场景命令
- 仅恢复特定集合(如 users)
bash
mongorestore -u admin -p 'password' --authenticationDatabase admin \
--db zking --nsInclude "zking.users" \
/data/zking
- 从压缩备份恢复(若备份时使用了 --gzip)
bash
mongorestore -u admin -p 'password' --authenticationDatabase admin \
--db zking --gzip \
/data/zking
- 远程恢复且不覆盖现有数据
bash
mongorestore --host 192.168.1.2 -u admin -p 'password' \
--authenticationDatabase admin --db zking \
/data/zking