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

MongoDB 8.x 制作一键部署安装包文档分享(Linux / Windows )

目录

MongoDB 8.x 一键部署文档(Windows 版)

环境要求与目录结构

.env.bat 内容示例

一键安装脚本 install_mongo8.bat

​编辑

init_user.js 示例

验证部署

常用命令

常见问题与排查

MongoDB 8.x 一键部署脚本(Linux 版 基于centos7.9)

依赖包说明与兼容性问题解决

安装 compat-openssl10 的目的

解决方式

验证方式

.env 示例

common.sh 示例(读取/更新配置文件通用函数)

脚本说明

然后你可以把整个文件打包为tar.gz,以下为安装示例

linux验证命令


MongoDB 8.x 一键部署文档(Windows 版)

MongoDB下载地址:https://www.mongodb.com/try/download/community

环境要求与目录结构

建议目录布局如下(根路径为 D:\mongodb):

D:\└─ mongodb\├─ bin\                # mongod.exe / mongosh.exe 等├─ data\db\            # 数据文件(脚本自动创建)├─ logs\               # 日志文件(脚本自动创建)├─ VC_redist.x64.exe   # 可选:Visual C++运行库安装包├─ .env.bat            # 环境变量定义├─ init_user.js        # 初始化脚本(创建 test 用户与样例数据)└─ install_mongo8.bat  # 一键安装脚本

运行环境要求:

  • 操作系统:Windows 10 / 11(以管理员身份运行 CMD)

  • MongoDB:官方 8.x 解压版(免安装)

  • 文件编码:所有 .bat 文件保存为 UTF-8 无 BOM


.env.bat 内容示例

放置于同目录:

@echo offset "CURRENT_DIR=%cd%"
echo BASEDIR:   "%CURRENT_DIR%"

若未提供 .env.bat,脚本会自动使用当前脚本所在目录作为根目录。


一键安装脚本 install_mongo8.bat

该脚本用于自动安装 MongoDB 服务、创建管理员账户、执行初始化脚本并启用认证模式。

@echo off
setlocal enabledelayedexpansion
chcp 65001 > nul:: 初始化路径
cd /d %~dp0
call .env.bat
if "%CURRENT_DIR%"=="" set "CURRENT_DIR=%~dp0"
set "MONGO_ROOT=%CURRENT_DIR%"
set "DATA_PATH=!MONGO_ROOT!\data\db"
set "LOG_DIR=!MONGO_ROOT!\logs"
set "LOG_FILE=!LOG_DIR!\mongod.log"
set "SERVICE_NAME=ApsMongoDB"
set "BIND_IP=0.0.0.0"
set "PORT=27018"
set "ADMIN_USER=admin"
set "ADMIN_PWD=admin321"
set "TEMP_ADMIN_SCRIPT=!MONGO_ROOT!\_create_admin.js"
set "INIT_SCRIPT=!MONGO_ROOT!\init_user.js":: 安装依赖(可选)
if exist "!MONGO_ROOT!\VC_redist.x64.exe" (VC_redist.x64.exe /quiet /norestartecho 已安装 Windows Visual C++ 运行时库
):: 检查 MongoDB 可执行文件
if not exist "!MONGO_ROOT!\bin\mongod.exe" (echo 错误:未找到 mongod.exe,请检查 MONGO_ROOT 路径pauseexit /b 1
):: 创建数据与日志目录
if not exist "!DATA_PATH!" mkdir "!DATA_PATH!"
if not exist "!LOG_DIR!" mkdir "!LOG_DIR!"
if not exist "!LOG_FILE!" echo. > "!LOG_FILE!":: 安装服务(无认证)
echo 正在安装 MongoDB 服务(无认证模式)...
sc delete "!SERVICE_NAME!" >nul 2>&1
"!MONGO_ROOT!\bin\mongod.exe" --dbpath="!DATA_PATH!" --logpath="!LOG_FILE!" ^--install --serviceName "!SERVICE_NAME!" --bind_ip "!BIND_IP!" --port !PORT!net start "!SERVICE_NAME!"
if %errorlevel% neq 0 (echo 服务启动失败,请检查日志:!LOG_FILE!exit /b 1
)
ping 127.0.0.1 -n 5 > nul:: 创建管理员账户
echo 创建管理员账户中...
"!MONGO_ROOT!\bin\mongosh.exe" --norc "mongodb://127.0.0.1:!PORT!/admin" ^--eval "db.createUser({user:'!ADMIN_USER!', pwd:'!ADMIN_PWD!', roles:[{role:'root',db:'admin'}]})"
if %errorlevel% neq 0 (echo 管理员创建失败,请检查日志net stop "!SERVICE_NAME!"exit /b 1
)
echo 管理员账户已创建:!ADMIN_USER!:: 执行初始化脚本(可选)
if exist "!INIT_SCRIPT!" (echo 执行初始化脚本:!INIT_SCRIPT!"!MONGO_ROOT!\bin\mongosh.exe" "mongodb://127.0.0.1:!PORT!/admin" --file "!INIT_SCRIPT!"if %errorlevel% equ 0 (echo 初始化脚本执行成功) else (echo 初始化脚本执行失败,请检查 !INIT_SCRIPT!)
) else (echo 未找到初始化脚本:!INIT_SCRIPT!,跳过
):: 启用认证模式
echo 启用认证模式...
net stop "!SERVICE_NAME!"
ping 127.0.0.1 -n 3 > nul
sc delete "!SERVICE_NAME!" >nul 2>&1"!MONGO_ROOT!\bin\mongod.exe" --dbpath="!DATA_PATH!" --logpath="!LOG_FILE!" ^--install --serviceName "!SERVICE_NAME!" --bind_ip "!BIND_IP!" --port !PORT! --authnet start "!SERVICE_NAME!"
if %errorlevel% equ 0 (echo MongoDB 服务已启动(启用认证)
) else (echo 启动失败,请检查日志:!LOG_FILE!exit /b 1
)echo 安装与初始化完成
endlocal


init_user.js 示例

该脚本会在管理员创建完成后执行,用于创建 test 账户和插入样例数据。

// 切换到测试数据库
use testdb;// 创建普通测试用户
db.createUser({user: "test",pwd: "test123",roles: [{ role: "readWrite", db: "testdb" }]
});// 创建集合并插入一条样例数据
db.createCollection("samples");
db.samples.insertOne({message: "Hello MongoDB 8.x",created_at: new Date(),author: "system"
});print("初始化完成:test 用户创建成功,样例数据已插入 testdb.samples");

验证部署

命令行验证

"D:\mongodb\bin\mongosh.exe" "mongodb://admin:admin321@127.0.0.1:27018/admin?authSource=admin"

执行:

show users

应看到:

{ "_id": "admin.admin", "user": "admin", "roles": [ "root" ] }

Navicat / Compass 连接测试

参数
主机127.0.0.1(或服务器IP)
端口27018
用户名test
密码test123
验证数据库testdb

连接后即可在 testdb → samples 中看到样例文档。


常用命令

net start ApsMongoDB      :: 启动服务
net stop ApsMongoDB       :: 停止服务
sc delete ApsMongoDB      :: 删除服务

常见问题与排查

现象原因解决办法
Authentication failed用户未创建或认证库错误确认已创建 admin,并使用正确的 authSource=admin
无法连接服务未启动或端口占用使用 net start ApsMongoDB 或修改端口
usersInfo requires authentication启用了 auth 但尚未创建 admin重新以无认证模式启动,创建 admin 后再启用 auth
'服务' is not recognized...文件编码或中文符号问题使用英文括号与 UTF-8 无 BOM 保存脚本

这份文档即为最终的可直接使用版,你只需准备以下三个文件:

D:\mongodb\├─ .env.bat├─ install_mongo8.bat└─ init_user.js

执行 install_mongo8.bat 即可一键部署可用的 MongoDB 8.x 服务。


MongoDB 8.x 一键部署脚本(Linux 版 基于centos7.9)

解压MongoDB 8.x 然后在根目录新建文件:install_mongodb8.sh

权限:chmod +x install_mongodb8.sh
执行:sudo ./install_mongodb8.sh

依赖包说明与兼容性问题解决

安装 compat-openssl10 的目的

MongoDB 官方提供的 Linux 二进制程序依赖 OpenSSL 1.0.2(libssl.so.10 / libcrypto.so.10)
但在 RHEL 8 / CentOS 8 / RockyLinux / AlmaLinux 等系统中,默认版本是 OpenSSL 1.1 或 3.x,系统中已不再包含这些旧版库。

因此,如果直接运行 MongoDB,可出现以下错误:

error while loading shared libraries: libssl.so.10: cannot open shared object file

解决方式

安装系统兼容包:

compat-openssl10-1.0.2o-4.el8_6.x86_64.rpm

该包的作用是补充旧版 OpenSSL 运行库,使 MongoDB 能正常启动。

验证方式

执行:

ldd /opt/mongodb/bin/mongod | grep ssl

若输出中能找到:

libssl.so.10 => /usr/lib64/libssl.so.10
libcrypto.so.10 => /usr/lib64/libcrypto.so.10

则表示兼容包安装成功。


简而言之:

compat-openssl10 是 MongoDB 在 CentOS/RHEL 8 上必需的兼容运行库,用来解决 “找不到 libssl.so.10 / libcrypto.so.10” 的启动错误。


.env 示例

INSTALL_DIR=/opt/mongodb
PORT=27018
USR=admin
PWD=admin321

common.sh 示例(读取/更新配置文件通用函数)

#!/bin/bashget_env_var() {local file=$1local key=$2grep "^${key}=" "$file" | cut -d '=' -f2
}update_env_var() {local file=$1local key=$2local value=$3if grep -q "^${key}" "$file"; thensed -i "s#^${key}.*#${key}=${value}#g" "$file"elseecho "${key}=${value}" >> "$file"fi
}

脚本说明

功能说明
环境参数读取.env 文件读取安装路径、端口及账号密码
自动依赖安装检查并安装 compat-openssl10 RPM 包
MongoDB 配置自动修改 mongodb.confdbpathlogpathport
用户创建创建 adminmonitordevmodeldevmodel_releasetest 用户
样例数据testdb.samples 中插入测试文档
启用认证修改配置文件 auth = true
开机自启添加 @reboot cron 任务自动启动 MongoDB
初始化脚本支持自动执行 init_devmodel.jsinit_yapidb.js(如存在)

然后你可以把整个文件打包为tar.gz,以下为安装示例

linux验证命令

./bin/mongo "mongodb://test:test123456@127.0.0.1:27017/admin?authSource=admin"

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

相关文章:

  • Data Warehouse简介
  • 若依 - idea集成docker一键部署springboot项目(docker-compose)
  • 2025 年 MathorCup 大数据建模竞赛 AB 题:高质量全方案・成品资料速取(含双代码 + 论文)
  • 为什么 idea 建议去掉 StringBuilder,使用“+”拼接字符串
  • 2025年数字人语音合成师专业能力测试
  • 门户网站建设思维导图wordpress表格显示图片
  • 【案例实战】基于 AGC 云开发与元服务构建智能待办应用
  • 【第五章:计算机视觉-项目实战之推荐/广告系统】2.粗排算法-(3)理解粗排模型之在线部分:在线架构及对双塔的应用
  • Spring Boot 起步:自动装配的魔法
  • 嵌入式软件架构--显示界面2(呼叫界面,密码界面)
  • 购物网站制作怎么做wordpress移动自媒体
  • 酒店网站做的比较好的钓鱼网站的制作教程
  • 从理论到实战:生成对抗网络(GAN)在图像生成中的关键技巧与完整代码剖析
  • 在K8S中部署MySQL主从
  • go strconv包介绍
  • 论文阅读12——基于学习的具有扩散行为的人流量预测方法
  • 对于随机变量x1, …, xn,其和的范数平方的期望不超过n倍各随机变量范数平方的期望之和
  • ARM《3》_学习c和汇编的混合编程
  • 硬件工程师11月实战项目-10G高速数字示波器开发
  • FPGA Debug:Vivado程序综合卡在了Run Synthesis
  • 免费网站建设推广服务什么样的公司愿意做网站
  • 世隆科技:无人船——开启水上智能作业新时代
  • 网站后台模板关联自己做的网站电商网站楼层 设计
  • 【北京迅为】iTOP-4412精英版使用手册-第六十八章 U-boot基础知识
  • 关于函数调用其实是函数指针+传参+解引用的一些思考
  • 奇缦科技珠海网站建设优化网站地图样本
  • 【设计模式】组合模式(Composite)
  • 【论文精读】Matten:融合 Mamba 与 Attention 的视频生成新范式
  • HTB Networked writeup(network-scripts提权)
  • 如何入门python机器学习?金融从业人员如何快速学习Python、机器学习?机器学习、数据科学如何进阶成为大神?