【安装软件系列】Ubuntu安装MongoDb

发布于:2025-08-01 ⋅ 阅读:(17) ⋅ 点赞:(0)

前言

        MongoDb的云服务有点贵,所以自建一个来用,简单记录一下,参考MongoDb官网链接

https://www.mongodb.com/zh-cn/docs/manual/tutorial/install-mongodb-on-ubuntu/#std-label-install-mdb-community-ubuntu

一、系统优化

        内核参数优化

vim /etc/sysctl.conf

vm.max_map_count = 262144
vm.swappiness = 1
vm.dirty_background_ratio = 3
vm.dirty_ratio = 5
vm.zone_reclaim_mode = 0
vm.min_free_kbytes = 2097152
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 3

        执行以下命令生效

sudo sysctl -p

二、安装

        从终端安装 gnupg 和 curl(如果尚未安装):

sudo apt-get install gnupg curl

        要导入 MongoDB 公共 GPG 密钥,请运行以下命令:

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
   --dearmor

        创建列表文件

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

        重新加载包数据库

sudo apt-get update

        安装MongoDB Community Server

sudo apt-get install -y mongodb-org

        新建数据目录并赋权

mkdir /data/mongodb/data
sudo chown -R mongodb:mongodb /data/mongodb/data

        修改mongodb的数据目录,dbPath改为对应的数据目录,security.authorization默认没有,可以先不开启,等新增管理员账号后再开启

vim /etc/mongod.conf

storage:
  dbPath: /data/mongodb/data

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

net:
  port: 27017
  bindIp: 192.168.1.2

processManagement:
  timeZoneInfo: /usr/share/zoneinfo
  fork: true
  pidFilePath: /var/run/mongodb/mongod.pid

security:
  authorization: enabled

  三、新增管理员

        连接mongo

mongosh "mongodb://192.168.1.2:27017"

        新增管理员账号

use admin
db.createUser({
  user: "admin",
  pwd: "自定义密码",
  roles: [
    { role: "userAdminAnyDatabase", db: "admin" },
    { role: "readWriteAnyDatabase", db: "admin" },
    { role: "dbAdminAnyDatabase", db: "admin" },
    { role: "clusterAdmin", db: "admin" }
  ]
})

        启用认证

vim /etc/mongod.conf

        添加以下配置

security:
  authorization: enabled

四、服务管理

systemctl enable mongod

systemctl status mongod

systemctl start mongod

systemctl stop mongod

五、优化日志

        MongoDb的日志是一个大文件,时间长了占用空间会越来越大,改为一天一个,最多存储7天,配置里一定要添加pid文件的存储位置,  pidFilePath: /var/run/mongodb/mongod.pid

        创建lograte配置文件

/etc/logrotate.d/mongodb

/var/log/mongodb/mongod.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 640 mongodb mongodb
    postrotate
        /bin/kill -SIGUSR1 `cat /var/run/mongodb/mongod.pid 2>/dev/null` 2>/dev/null || true
    endscript
}
参数 说明
daily 每天轮转一次
rotate 7 保留最近 7 天的日志
compress 压缩旧日志
delaycompress 延迟压缩,保留一天未压缩的日志
notifempty 如果日志为空则不轮转
create 640 mongodb mongodb 创建新日志文件,权限为 640,属主为 mongodb 用户
postrotate ... endscript 通知 MongoDB 切换日志文件

         测试 logrotate 配置(可选)

sudo logrotate -vf /etc/logrotate.d/mongodb

写在最后的话

        资源限制不用修改,如果是通过软件包管理器(例如 yum 或 apt)安装的 MongoDB,则自动安装的服务文件中已包含这些 ulimit 值。


网站公告

今日签到

点亮在社区的每一天
去签到