1. 安装前说明
1. 本安装以ubuntu22.04 为准
2. 7.0版本最高支持系统:ubuntu22.04 详细移步:https://www.mongodb.com/try/download/community-edition/releases/archive
2. apt-get 安装流程
2.1 官方安装命令
1.安装工具
sudo apt-get install gnupg curl
2.获取密钥
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
3.获取文件列表
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
4.更新
sudo apt-get update
2.2 代理源安装命令
1. 获取密钥
sudo wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | apt-key add -
2. 获取文件列表
sudo echo "deb [ arch=amd64,arm64 ] https://mirrors.tuna.tsinghua.edu.cn/mongodb/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
3.更新
sudo apt-get update
2.3 开始安装
sudo apt-get install -y mongodb-org
3. deb包安装流程
下载移步:https://www.mongodb.com/try/download/community-edition/releases/archive
工具(mongos)下载移步:https://www.mongodb.com/try/download/shell
使用apt-get install 会提示-apt用户没有权限,使用 dpkg -i 命令安装
#安装 server
sudo dpkg -i ./mongodb-org-server_7.0.16_amd64.deb
#安装mongos
sudo dpkg -i ./mongodb-org-mongos_7.0.16_amd64.deb
4. 启动
#简单配置mongo
sudo vim /etc/mongod.conf
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
保存并退出
#启动
sudo systemctl start mongod
sudo systemctl enable mongod
sudo systemctl status mongod
同环境启动多个mongo 服务
例子1:启动mongod节点服务后,再启动一个mongos 服务
=>创建文件
sudo touch /var/log/mongodb/mongosd.log
sudo chown mongodb:mongodb /var/log/mongodb/mongosd.log
=>复制一份配置
sudo cp /etc/mongod.conf /etc/mongod-mongos.conf
=> 修改配置为
#storage:
# dbPath: /var/lib/mongodb
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongosd.log
net:
port: 27017
bindIp: mongos.com
sharding:
configDB: configReplSet/mongoconfig.com:27030
=>启动mongos
sudo -u mongodb mongos --config /etc/mongod-mongos.conf &
例子2:启动mongod节点服务后,再启动一个mongo config 服务
----------配置 config svr----------------
# Where and how to store data.
storage:
dbPath: /var/lib/mongodbConfig
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongodbConfig.log
sharding:
clusterRole: configsvr
replication:
replSetName: configReplSet
net:
bindIp: mongoconfig.com
port: 27030
-----------同一台机器配置3台 config svr------------------
sudo mkdir -p /var/lib/mongodbConfig
sudo chown -R mongodb:mongodb /var/lib/mongodbConfig
sudo touch /var/log/mongodb/mongodbConfig.log
sudo chown mongodb:mongodb /var/log/mongodb/mongodbConfig.log
sudo cp /etc/mongod.conf /etc/mongod-mongodbConfig.conf
===>启动
sudo -u mongodb mongod --config /etc/mongodbConfig.conf &
===>停止
sudo -u mongodb mongod --config /etc/mongodbConfig.conf --shutdown
5. mongo推荐系统设置
ps:写这条的原因是大多新装系统的相关参数都小于64000,使用:ulimit -a
real-time non-blocking time (microseconds, -R) unlimited
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 7253
max locked memory (kbytes, -l) 246744
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 7253
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
详细移步:https://www.mongodb.com/zh-cn/docs/v7.0/reference/ulimit/
5.1 修改ulimit参数
sudo vim /etc/security/limits.conf
添加以下内容:
* soft nproc 64000 # 用户进程数(软限制)
* hard nproc 524288 # 用户进程数(硬限制)
* soft nofile 64000 # 文件描述符数(软限制)
* hard nofile 524288 # 文件描述符数(硬限制)
保存并退出
ps: * 表示所有用户,可替换为具体用户名(如 ubuntu)以限制特定用户
5.2 确保 PAM 模块加载限制配置(来源于AI)
某些系统可能未默认加载 limits.conf,需检查 PAM 配置:
1.编辑pam会话文件
sudo vim /etc/pam.d/common-session
添加以下内容
session required pam_limits.so
保存并退出
5.3 修改 Systemd 全局配置
Ubuntu 22.04 使用 Systemd 管理服务,部分进程可能绕过 limits.conf,需单独配置:
5.3.1 编辑systemd配置文件:
sudo vim /etc/systemd/system.conf
5.3.2 编辑以下参数:
DefaultTasksMax=524288 # 用户进程数(等效于 nproc)
DefaultLimitNOFILE=64000:524288 # 文件描述符数(软:硬限制)
保存并退出
5.3.3 重新加载并重启
sudo systemctl daemon-reload
sudo reboot
5.3.4 验证是否配置成功
1.找到mongodb的pid
pidof mongod
5.3.5 pid查询进程参数
比如pid=799
sudo cat /proc/799/limits |grep "open files"
打印-> Max open files 64000 64000 files
sudo cat /proc/799/limits |grep "processes"
打印-> Max processes 64000 64000 processes
打印以上参数就对了