【快捷部署】017_MongoDB(6.0.14)

📣【快捷部署系列】017期信息

编号 选型 版本 操作系统 部署形式 部署模式 复检时间
017 MongoDB 6.0.14 Ubuntu 20.04 apt 单机 2024-04-11

一、快捷部署

shell 复制代码
#!/bin/bash
#################################################################################
# 作者:cxy@toctalk@hwy 2024-04-10                                                 
# 功能:自动部署MongoDB 6.0 社区版
# 说明:修改了默认端口,bindIp,数据及日志存储路径,未配置鉴权。                    
#################################################################################

info(){
  echo -e "\033[34m 【`date '+%Y-%m-%d %H:%M:%S'`】\033[0m" "\033[35m$1\033[0m "
}

#自定义mongodb配置文件
diy_MongoDB_config(){
	
 sudo mkdir -p /cxy/mongodb/data
 sudo mkdir -p /cxy/mongodb/logs

 chmod 777 /cxy/mongodb/data
 chmod 777 /cxy/mongodb/logs

 #备份原始配置文件
 cp /etc/mongod.conf /cxy/mongodb/mongod.conf.bak
 sudo rm -f /etc/mongod.conf
 sudo touch /etc/mongod.conf

 # 创建 MongoDB 配置文件
sudo cat > /etc/mongod.conf <<EOF
# Where and how to store data.
storage:
  dbPath: /cxy/mongodb/data
#  engine:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /cxy/mongodb/logs/mongod.log

# network interfaces
net:
  port: 27123
  bindIp: 0.0.0.0


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

#security:

EOF

}


# 安装 MongoDB 6.0 社区版
install_MongoDB(){
 

 sudo apt-get install -y gnupg curl

 #导入MongoDB公共GPG密钥
 curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \
   --dearmor

 # 添加 MongoDB 仓库源
 echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

 # 更新软件包列表
 sudo apt-get update

 #安装指定版本
 info "开始安装 MongoDB(6.0.14)..."
 sudo apt-get install -y mongodb-org=6.0.14 mongodb-org-database=6.0.14 mongodb-org-server=6.0.14 mongodb-org-mongos=6.0.14 mongodb-org-tools=6.0.14

 # 调整ulimit限制,Ubuntu 22.04 默认好像已经设置了,可自行确认,如没设置,可手动执行
 info "安装完毕,开始处理ulimit设置..."
 #echo "* soft nofile 65536" | sudo tee -a /etc/security/limits.conf
 #echo "* hard nofile 65536" | sudo tee -a /etc/security/limits.conf

 ulimit -n 65535

 #固定当前安装版本(可选操作)
 echo "mongodb-org hold" | sudo dpkg --set-selections
 echo "mongodb-org-database hold" | sudo dpkg --set-selections
 echo "mongodb-org-server hold" | sudo dpkg --set-selections
 echo "mongodb-mongosh hold" | sudo dpkg --set-selections
 echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
 echo "mongodb-org-tools hold" | sudo dpkg --set-selections

 #自定义配置文件
 diy_MongoDB_config

 # 启动 MongoDB 服务
 sudo systemctl start mongod

 # 检查 MongoDB 服务状态
 sudo systemctl status mongod

 info "部署完毕!相关部署信息如下:"
 info "连接IP地址参考:$(hostname -I)、$(curl ifconfig.me/ip)"
 info "端口:27123"
 info "数据存储目录:/cxy/mongodb/data"
 info "日志目录:/cxy/mongodb/logs"
}

install_MongoDB

使用方法:

shell 复制代码
$ vim install-MongoDB6-Ubuntu20.sh
$ chmod +x install-MongoDB6-Ubuntu20.sh
$ ./install-MongoDB6-Ubuntu20.sh
# 感谢淘客科技提供的实验资源环境

验证:

shell 复制代码
#查看服务状态
$ sudo systemctl status mongod

#查看 ulimit配置情况
$ ulimit -a
$ cat /etc/security/limits.conf

#查看自定义的配置信息
$ cat /etc/mongod.conf

二、入门体验

shell 复制代码
# 连接 MongoDB 数据库
mongosh mongodb://127.0.0.1:27123

# 创建数据库
use mydb

# 创建集合
db.createCollection("demo")

# 插入文档
db.demo.insertOne({ "name": "CXY", "age": 99 })

# 查询文档
db.demo.find()

由于是入门系列,所以仅列举了简单的体验场景。

更多信息可访问官网:https://www.mongodb.com/zh-cn/docs/v6.0/tutorial/install-mongodb-on-ubuntu/

当然,您也可以关注我,关注后续相关博文。

往期精彩内容推荐

云原生:5分钟了解一下Kubernetes是什么
【快捷部署】015_Minio(latest)
【快捷部署】014_elasticsearch(7.6)
【快捷部署】011_PostgreSQL(16)
【快捷部署】010_MySQL(5.7.27)
【快捷部署】009_Redis(6.2.14)
「快速部署」第一期清单

相关推荐
这个DBA有点耶4 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G4 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备4 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远4 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
2601_962218614 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
张洛闻Eren4 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
于平安4 天前
MySQL-触发器
数据库·mysql
白远山4 天前
上海24小时自助健身房解决方案实战指南与经验分享
java·数据库·架构·需求分析
Omics Pro4 天前
斯坦福Nature+Science|广义虚拟细胞基础大模型
数据库·人工智能·算法·机器学习·自然语言处理
2603_965148114 天前
AI+API选品:下一代智能商务助手雏形已现
java·大数据·数据库·人工智能·数据挖掘