[ Spring ] Install MongoDB on Ubuntu24

文章目录

          • [Disable THP Service](#Disable THP Service)
          • [Remove File and Process Count Limitation](#Remove File and Process Count Limitation)
          • [Enable Swappiness for MongoDB](#Enable Swappiness for MongoDB)
          • [Install MongoDB](#Install MongoDB)
          • [Enable MongoDB Service](#Enable MongoDB Service)
          • [Create MongoDB Admin User](#Create MongoDB Admin User)
          • [Enable MongoDB Authentication](#Enable MongoDB Authentication)
          • [Create a Normal Database](#Create a Normal Database)
          • [Update User Roles](#Update User Roles)
          • [Insert Document](#Insert Document)
          • [Uninstall MongoDB](#Uninstall MongoDB)
          • [Configure MongoDB Connection in SpringBoot](#Configure MongoDB Connection in SpringBoot)
          • [Preference Guidance](#Preference Guidance)
Disable THP Service

this allow you create a startup service for mongo db

bash 复制代码
sudo nano /etc/systemd/system/disable-thp.service

append this script to file end, press Ctrl+X Y Enter to save

bash 复制代码
[Unit]
Description=Disable Transparent Huge Pages (THP)

[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"

[Install]
WantedBy=multi-user.target

reload systemd to take effect

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service
Remove File and Process Count Limitation
bash 复制代码
sudo nano /etc/security/limits.d/mongodb.conf

append this script to file end, press Ctrl+X Y Enter to save

bash 复制代码
mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000
Enable Swappiness for MongoDB
bash 复制代码
sudo nano /etc/sysctl.conf

append this script to file end, press Ctrl+X Y Enter to save

bash 复制代码
fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1

apply changes

bash 复制代码
sudo sysctl -p
Install MongoDB
bash 复制代码
sudo apt update
sudo apt install gnupg curl

add GPG key and repository for mongo db

bash 复制代码
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
bash 复制代码
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

install mongo db

bash 复制代码
sudo apt update
sudo apt install mongodb-org
Enable MongoDB Service
bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable --now mongod
sudo systemctl status mongod

press Ctrl+Z to exit status details

Create MongoDB Admin User
bash 复制代码
mongosh
bash 复制代码
disableTelemetry()
use admin
db.createUser({
  user: "root",
  pwd: passwordPrompt(),
  roles: [
    {
      role: "userAdminAnyDatabase",
      db: "admin"
    },
    {
      role: "readWriteAnyDatabase",
      db: "admin"
    }
  ]
})
bash 复制代码
quit()
Enable MongoDB Authentication
bash 复制代码
sudo nano /etc/mongod.conf

append this script to file end, press Ctrl+X Y Enter to save

when you want to reset admin user, you should disable this option, and restart mongod

bash 复制代码
security:
  authorization: enabled

reload mongo db service to take effect

bash 复制代码
sudo systemctl restart mongod

try a login with password

bash 复制代码
mongosh --port 27017 --authenticationDatabase "admin" -u "root" -p
Create a Normal Database
bash 复制代码
use user

create a new user for this normal db

bash 复制代码
db.createUser({
  user: "useradmin",
  pwd: passwordPrompt(),
  roles: [
    {
      role: "readWrite",
      db: "user"
    }
  ]
})
bash 复制代码
quit()

try a login with password

bash 复制代码
mongosh --port 27017 --authenticationDatabase "user" -u "useradmin" -p
Update User Roles
bash 复制代码
mongosh --port 27017 --authenticationDatabase "admin" -u "root" -p
bash 复制代码
use user
bash 复制代码
db.createUser({
  user: "root",
  pwd: passwordPrompt(),
  roles: []
})
bash 复制代码
db.grantRolesToUser("root", [{role:"readWrite", db:"user"}])
Insert Document
bash 复制代码
db.user.insertOne({
    id:"1",
    name:"MongoA"
})
Uninstall MongoDB
bash 复制代码
sudo apt purge mongodb-org
Configure MongoDB Connection in SpringBoot
properties 复制代码
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=user
spring.data.mongodb.username=root
spring.data.mongodb.password=123456789
Preference Guidance

https://www.howtoforge.com/tutorial/install-mongodb-on-ubuntu

相关推荐
心灵宝贝9 小时前
申威ky10架构安装MongoDB 4.0.1(rpm包:mongodb-4.0.1-8.ky10.sw_64.rpm)详细步骤
数据库·mongodb·架构
金仓拾光集18 小时前
__金仓数据库平替MongoDB实战:从多模兼容到高可用落地__
数据库·mongodb·数据库平替用金仓·金仓数据库
流烟默18 小时前
MongoDB索引创建语法分析
数据库·mongodb
金仓拾光集18 小时前
__国产化转型实战:制造业供应链物流系统从MongoDB至金仓数据库迁移全指南__
数据库·mongodb·数据库平替用金仓·金仓数据库
小马哥编程18 小时前
【软考架构】案例分析:MongoDB 如何存储非结构化数据以及其矢量化存储的优点。
数据库·mongodb·架构
金仓拾光集1 天前
金仓数据库替代MongoDB实战:政务电子证照系统的国产化转型之路
数据库·mongodb·政务·数据库平替用金仓·金仓数据库
金仓拾光集1 天前
__金仓数据库平替MongoDB:银行存款系统国产化实践__
数据库·mongodb
流烟默1 天前
MongoDB入门指南基础篇
数据库·mongodb
金仓拾光集1 天前
_金仓数据库平替MongoDB实战:制造业生产进度管理的国产化升级之路
数据库·mongodb
金仓拾光集1 天前
__金仓数据库平替MongoDB全栈安全实战:从文档存储到多模一体化的演进之路__
数据库·安全·mongodb