Ubuntu22.04系统离线安装MongoDB
1、(在线)安装MongoDB
(1)查看Ubuntu版本,安装Ubuntu24的MongoDB官方仓库
cat /etc/lsb-release
若为Ubuntu24版本,由于该版本官方仓库中没有MongoDB的软件包,所以需要先添加MongoDB的官方库
(2)导入包管理系统使用的MongoDB公钥
下载 MongoDB 的 GPG 公钥文件
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc -O mongodb.asc
将公钥文件移动到 /etc/apt/trusted.gpg.d/
目录中
sudo mv mongodb.asc /etc/apt/trusted.gpg.d/mongodb.gpg
创建 MongoDB 软件源列表文件,将 MongoDB 的软件包源添加到 APT 源列表中:
echo "deb [ arch\=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu \$(lsb\_release -cs)/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
(3)更新软件包列表
sudo apt-get update
(4)安装最新的MongoDB 7.0版本(适用于Ubuntu22和24)
sudo apt-get install -y mongodb-org
sudo apt-get install -y mongodb-org=7.0.12 mongodb-org-server=7.0.12 mongodb-org-shell=7.0.12 mongodb-org-mongos=7.0.12 mongodb-org-tools=7.0.12
2、(离线)安装MongoDB
(1)安装包下载地址:https://www.mongodb.com/try/download/community-kubernetes-operator
下载对应ubuntu系统版本的MongoDB,上传至服务器并解压,重命名,并移动文件夹至安装路径
tar -zxvf mongodb-linux-x86_64-ubuntu2204-7.0.12.tgz
mv /home/ubuntu/mongodb-linux-x86_64-ubuntu2204-7.0.12/ /home/ubuntu/mongodb/
mv /home/ubuntu/mongodb/ /usr/local/
(2)配置环境变量
为了方便使用 MongoDB,可以将 MongoDB 的二进制文件添加到系统的 PATH
中:
nano ~/.bashrc
添加以下内容:
export PATH=/usr/local/mongodb/bin:$PATH
保存退出,使配置生效:
source ~/.bashrc
(3)创建MongoDB相关目录
# 创建必要的目录
sudo mkdir -p /usr/local/mongodb/data/db
sudo mkdir -p /var/log/mongodb
sudo mkdir -p /var/run/mongodb
# 创建 mongodb 用户和组
sudo useradd -r -s /bin/false mongodb
sudo groupadd mongodb
sudo usermod -aG mongodb mongodb
# 创建日志文件并设置权限
sudo touch /var/log/mongodb/mongod.log
sudo chown mongodb:mongodb /var/log/mongodb/mongod.log
sudo chmod 777 /var/log/mongodb/mongod.log
# 设置目录权限
sudo chown -R mongodb:mongodb /usr/local/mongodb/data/db /var/log/mongodb /var/run/mongodb
sudo chmod 755 /var/log/mongodb /usr/local/mongodb/data/db
创建mongodb配置文件
sudo nano /etc/mongodb.conf
在文件中添加
storage:
dbPath: /usr/local/mongodb/data/db
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
net:
port: 27017
bindIp: 0.0.0.0
processManagement:
fork: true
(4)设置MongoDB服务
创建服务文件
vim /etc/systemd/system/mongod.service
添加以下内容:
[Unit]
Description=MongoDB Database Service
After=network.target
[Service]
User=mongodb
ExecStart=/usr/local/mongodb/bin/mongod --dbpath /usr/local/mongodb/data/db --logpath /var/log/mongodb/mongod.log --bind_ip=0.0.0.0 --port=27017
Restart=on-failure
PIDFile=/var/run/mongodb/mongod.pid
[Install]
WantedBy=multi-user.target
保存并退出,重新加载systemd 服务配置
sudo systemctl daemon-reload
3、运行MongoDB
(1)检查MongoDB运行状态
sudo systemctl status mongod
若未启动
sudo systemctl start mongod
(2)设置开启自启
sudo systemctl enable mongod
4、开启MongoDB防火墙
如果服务器有防火墙并且希望允许远程访问 MongoDB,请确保开放默认的 MongoDB 端口 27017
:
sudo ufw allow 27017
5、MongoDB初始化
(1)进入MongoDB的shell
mongosh
(2)创建管理员账户
在>提示符下,运行以下命令,切换到admin数据库
use admin
然后,创建一个名为admin
,密码为password
的管理员账户
db.createUser({user: "用户", pwd: "密码", roles: [ { role: "root", db: "admin" }, "readWriteAnyDatabase" ]})
完成后,退出MongoDB的shell
exit
6、修改MongoDB的配置文件
(1)端口的修改及绑定地址
默认情况下,MongoDB 默认端口为27017
,且只绑定到本地主机127.0.0.1
,如果你希望允许远程主机连接到 MongoDB,需要修改bindIp
选项
vim /etc/mongod.conf
找到以下内容并修改
net:
bindIp: 0.0.0.0
这将允许 MongoDB 监听所有 IP 地址。如果你只希望特定的 IP 可以连接,可以将0.0.0.0
替换为具体的 IP 地址
(2)启用身份验证和授权
进入配置文件后,找到注释内容
#security:
取消注释,并在下面添加
security:
authorization: enabled
(3)修改数据目录
MongoDB 的数据默认存储在 /var/lib/mongodb
目录中。如果希望更改数据存储的位置,可以修改 dbPath
选项:
storage:
dbPath: /自定义路径
(4)日志配置(logPath
和 logRotate
)
默认的 MongoDB 日志文件存储在 /var/log/mongodb/mongod.log
,可以修改日志文件的路径和日志轮转策略:
systemLog:
destination: file
logAppend: true
path: /your/custom/path/mongod.log
-
logAppend: true
表示追加日志而不是覆盖。 -
logRotate: reopen
是常见的日志轮转方式之一,当使用logrotate
进行日志轮转时,这个设置非常有用。
(5)复制集配置(replication
)
如果需要设置一个 MongoDB 复制集,需要在配置文件中启用复制集:
replication:
replSetName: "替换为复制集名称"
(6)持久化引擎 (storage.engine
)
MongoDB 支持不同的存储引擎,默认是 wiredTiger
,如果需要使用不同的存储引擎,可以配置:
storage:
engine: wiredTiger
(7)限制内存使用 (wiredTiger.cacheSizeGB
)
如果需要控制 MongoDB 的内存使用,可以调整 wiredTiger
引擎的缓存大小:
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 1
这个设置将缓存大小限制为 1GB,可根据需要调整
(8)日志记录级别 (systemLog.verbosity
)
可以通过修改 systemLog
部分来调整 MongoDB 的日志记录级别,日志级别范围是 0(最少日志)到 5(最多详细日志):
systemLog:
verbosity: 0
(9)设置最大连接数 (maxIncomingConnections
)
可以限制 MongoDB 的最大并发连接数:
net:
maxIncomingConnections: 100
(10)修改完成后,输入:wq
保存并关闭文件,并重启Mongodb服务
sudo systemctl restart mongod
7、MongoDB的卸载
(1)停止MongoDB服务
sudo service mongod stop
(2)删除包
sudo apt-get purge mongodb-org*
(3)删除数据库和日志文件
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb