当前位置: 首页 > news >正文

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

前言

        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/datasystemLog:destination: filelogAppend: truepath: /var/log/mongodb/mongod.lognet:port: 27017bindIp: 192.168.1.2processManagement:timeZoneInfo: /usr/share/zoneinfofork: truepidFilePath: /var/run/mongodb/mongod.pidsecurity: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 {dailymissingokrotate 7compressdelaycompressnotifemptycreate 640 mongodb mongodbpostrotate/bin/kill -SIGUSR1 `cat /var/run/mongodb/mongod.pid 2>/dev/null` 2>/dev/null || trueendscript
}
参数说明
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 值。

http://www.dtcms.com/a/304076.html

相关文章:

  • 姑苏区人工智能大模型基础设施|参数1-3:服务器整体
  • React--》规划React组件库编码规范与标准 — Button篇
  • 第十三讲:C++多态
  • 多个参数组合生成sql的方法
  • BERT 的 NSP慢慢转换为SOP
  • arm v3 smmu 图示
  • Android四大组件之BroadcastReceiver解析
  • [2025CVPR]HUGNet2架构:事件相机光流估计
  • 智能落地扇方案:青稞RISC-V电机 MCU一览
  • Java 10 新特性解析
  • 【嵌入式电机控制#18】有刷直流串级控制
  • Redis的持久化策略-AOF和RDB(详细图解)
  • 同创永益 IStorM Chaos 混沌工程平台智能化:智能实验工作台,多智能体协作,筑牢系统稳定性防线
  • [css]旋转流光效果
  • RabbitMQ 消息持久化的三大支柱 (With Spring Boot)
  • 焊接机器人智能化气体节约方案
  • arm smmu v3 队列实现机制
  • 【Linux知识】Linux Shell 脚本中的 `set -ex` 命令深度解析
  • Spark SQL 数组函数合集:array_agg、array_contains、array_sort…详解
  • 水仙花数(python)
  • CMake 完全实战指南:从入门到精通
  • Linux重定向的理解
  • VR全景制作流程分享-众趣VR全景制作平台
  • 【微信小程序】12、生物认证能力
  • 【MySQL基础篇】:MySQL表的约束常用类型以及实战示例
  • 算法篇----前缀和
  • 【前端开发】一. html css js 初印象
  • 验证pyspark提交参数指定环境变量生效
  • 什么情况下会出现数据库和缓存不一致的问题?
  • VS Code编辑器