MongoDB单机部署

简介: 本文介绍MongoDB在Windows与Linux系统的安装启动方法,涵盖下载、解压、配置数据目录与端口,支持命令行和配置文件方式启动服务。详细说明如何通过mongo shell连接数据库,使用Compass图形化工具管理,以及Linux下部署、防火墙配置和安全关闭服务等操作,助你快速搭建MongoDB运行环境,适用于开发与生产场景。

本文介绍MongoDB在Windows与Linux系统的安装启动方法,包括下载32/64位安装包、解压配置、命令行或配置文件方式启动服务,并设置数据目录与端口。同时说明如何通过mongo shell连接数据库,使用Compass图形化工具管理,以及Linux下的部署、防火墙配置和安全关闭服务等操作,助你快速搭建MongoDB运行环境。
Windows系统安装启动
下载安装包
附件中已准备好win32位、win64位安装包
MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https://www.mongodb.com/download-center#community

提示:版本的选择:
MongoDB的版本命名规范如:x.y.z;
y为奇数时表示当前版本为开发版,如:1.5.2、4.1.13;
y为偶数时表示当前版本为稳定版,如:1.6.3、4.0.10;
z是修正版本号,数字越大越好。
详情:http://docs.mongodb.org/manual/release-notes/#release-version-numbers
解压安装启动
将压缩包解压到一个目录中。在解压目录中,手动建立一个目录用于存放数据文件,如:data/db
方式1:命令行参数启动
bin目录中打开命令行提示符,输入如下命令:
mongod--dbpath=..\data\db
我们在启动信息中可以看到,mongoDB的默认端口是27017,如果我们想改变默认的启动端口,可以通过--port来指定端口。
为了方便我们每次启动,可以将安装目录的bin目录设置到环境变量的path中,bin目录下是一些常用命令,比如mongod启动服务用的
方式2:配置文件启动
在解压目录中新建config文件夹,该文件夹中新建配置文件mongod.conf,内如参考如下:
storage:

Thedirectorywherethemongodinstancestoresitsdata.DefaultValueis"\data\db"onWindows.

dbPath:D:\02_Server\DBServer\mongodb-win32-x86_64-2008plus-ssl-4.0.1\data
详细配置项内容可以参考官方文档:官方链接
【注意】
1)配置文件中如果使用双引号,比如路径地址,自动会将双引号的内容转义。如果不转义,则会报错:
error-parsing-yaml-config-file-yaml-cpp-error-at-line-3-column-15-unknown-escape-character-d
解决:
a. 对 \ 换成 / 或 \
b. 如果路径中没有空格,则无需加引号。
2)配置文件中不能以Tab分割字段
解决:将其转换成空格。
启动方式:
mongod -f ../config/mongod.conf

mongod --config ../config/mongod.conf
更多参数配置:
systemLog:
destination: file

The path of the log file to which mongod or mongos should send all diagnostic logging information

path: "D:/02_Server/DBServer/mongodb-win32-x86_64-2008plus-ssl-4.0.1/log/mongod.log"
logAppend: true
storage:
journal:
enabled: true

The directory where the mongod instance stores its data.Default Value is "/data/db".

dbPath: "D:/02_Server/DBServer/mongodb-win32-x86_64-2008plus-ssl-4.0.1/data"
net:

bindIp: 127.0.0.1

port: 27017
setParameter:
enableLocalhostAuthBypass: false
2.2 Shell连接(mongo命令)
在命令提示符输入以下shell命令即可完成登陆
mongo

mongo --host=127.0.0.1 --port=27017
查看已经有的数据库
show databases
退出mongodb
exit
更多参数可以通过帮助查看:
mongo --help
提示: MongoDB javascript shell是一个基于javascript的解释器,故是支持js程序的。
2.3 Compass-图形化界面客户端
到MongoDB官网下载MongoDB Compass, 地址:链接
如果是下载安装版,则按照步骤安装;如果是下载加压缩版,直接解压,执行里面的 MongoDBCompassCommunity.exe 文件即可。
在打开的界面中,输入主机地址、端口等相关信息,点击连接:

2.4 Linux系统中的安装启动和连接
目标:在Linux中部署一个单机的MongoDB,作为生产环境下使用。
提示:和Windows下操作差不多。
步骤如下:
(1)先到官网下载压缩包 mongod-linux-x86_64-4.0.10.tgz 。
(2)上传压缩包到Linux中,解压到当前目录:
tar -xvf mongodb-linux-x86_64-4.0.10.tgz
(3)移动解压后的文件夹到指定的目录中:
mv mongodb-linux-x86_64-4.0.10 /usr/local/mongodb
(4)新建几个目录,分别用来存储数据和日志:
mkdir -p /mongodb/single/data/db

日志存储目录

mkdir -p /mongodb/single/log
(5)新建并修改配置文件
vi /mongodb/single/mongod.conf
配置文件的内容如下:
systemLog:

MongoDB发送所有日志输出的目标指定为文件

#The path of the log file to which mongod or mongos should send all diagnostic logging information

destination: file

mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径

path: "/mongodb/single/log/mongod.log"

当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。

logAppend: true
storage:

mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。

The directory where the mongod instance stores its data.Default Value is "/data/db".

dbPath: "/mongodb/single/data/db"
journal:

启用或禁用持久性日志以确保数据文件保持有效和可恢复。

enabled: true
processManagement:

启用在后台运行mongos或mongod进程的守护进程模式。

fork: true
net:

服务实例绑定的IP,默认是localhost

bindIp: localhost,192.168.0.2
(6)启动MongoDB服务
[root@bobohost single]# /usr/local/mongodb/bin/mongod -f /mongodb/single/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 90384
child process started successfully, parent exiting
注意: 如果启动后不是 successfully ,则是启动失败了。原因基本上就是配置文件有问题。
通过进程来查看服务是否启动了:
[root@bobohost single]# ps -ef |grep mongod
root 90384 1 0 8月26 ? 00:02:13 /usr/local/mongdb/bin/mongod -f /mongodb/single/mongod.conf
(7)分别使用mongo命令和compass工具来连接测试。
提示:如果远程连接不上,需要配置防火墙放行,或直接关闭linux防火墙
systemctl status firewalld

临时关闭防火墙

systemctl stop firewalld

开机禁止启动防火墙

systemctl disable firewalld
(8)停止关闭服务
停止服务的方式有两种:快速关闭和标准关闭,下面依次说明:
(一)快速关闭方法(快速,简单,数据可能会出错)
目标:通过系统的kill命令直接杀死进程:
杀完要检查一下,避免有的没有杀掉。

通过进程编号关闭节点

kill -2 54410
【补充】 如果一旦是因为数据损坏,则需要进行如下操作(了解):
1)删除lock文件:
rm -f /mongodb/single/data/db/*.lock
2)修复数据:
/usr/local/mongdb/bin/mongod --repair --dbpath=/mongodb/single/data/db
(二)标准的关闭方法(数据不容易出错,但麻烦):
目标:通过mongo客户端中的shutdownServer命令来关闭服务
主要的操作步骤参考如下:
//客户端登录服务,注意,这里通过localhost登录,如果需要远程登录,必须先登录认证才行。
mongo --port 27017
//#切换到admin库
use admin
//关闭服务
db.shutdownServer()

相关文章
|
9天前
|
消息中间件 人工智能 决策智能
AgentScope x RocketMQ:构建多智能体应用组合
AgentScope是阿里巴巴推出的开发者友好型多智能体框架,支持模块化、可定制的智能体应用开发。通过集成RocketMQ,实现高效、可靠的A2A通信,助力构建如“智能旅行助手”等复杂协作场景,提升开发效率与系统可扩展性。(238字)
|
9天前
|
XML Java 数据库连接
MyBatis映射关系(1-1 1-n n-n)
本文介绍MyBatis四大关联映射:一对一(字段-属性映射)、一对多(如用户含多个角色,用`<collection>`)、多对一(如博客关联作者,用`<association>`)和多对多(通过中间类实现,如用户与部门)。解决复杂实体关系映射问题,提升数据查询效率与灵活性。
|
9天前
|
SQL 运维 分布式计算
如何做好SQL质量监控
SLS推出用户级SQL质量监控功能,集成于CloudLens for SLS,提供健康分、服务指标、运行明细、SQL Pattern分析及优化建议五大维度,帮助用户全面掌握SQL使用情况,实现精细化管理与性能优化,提升日志分析效率与体验。
|
9天前
|
监控 Java 调度
XXLJob定时任务概述
定时任务是基于时间表达式调度执行的任务,适用于定时对账、超时取消等场景。单体架构可使用轮询、Timer、ScheduledExecutorService、Quartz或SpringTask;分布式环境下需解决重复执行、故障转移等问题,主流方案有XXL-JOB、Elastic-Job、Saturn和ScheduleX。
|
9天前
|
运维 Devops 开发工具
生产环境缺陷管理
git-poison基于go-git实现,通过“投毒-解毒”机制在多分支环境中精准追踪bug,自动化阻塞带未修复bug的发布,降低协同成本,避免漏修、漏发问题,提升发布安全性与效率。
|
9天前
|
存储 负载均衡 算法
负载均衡算法
随机调用适用于性能均衡的服务器集群,无超阈值流量时效果佳;若机器性能不一,可采用加权随机或加权轮询,提升调度效率。加权轮询按权重分配请求,如权重[3,1]对应调用序列AAABA。最小活跃数算法将请求发往负载最低的节点,实现动态负载均衡。源地址哈希与一致性哈希则确保相同IP或Key的请求落在同一服务器,增强会话一致性,适用于缓存等场景。
|
9天前
|
NoSQL Shell Redis
Redis集群伸缩,转移插槽失败
Redis集群出现节点配置不一致,提示slot 0处于importing状态。需登录对应实例,执行`cluster setslot 0 stable`命令,将异常slot状态恢复稳定,修复后方可进行 rebalance 操作。注意根据实际slot ID调整命令参数。
|
9天前
|
SQL 安全 关系型数据库
了解SQL注入
SQL是用于管理数据库的标准语言,广泛应用于MySQL、Oracle等系统。其语法通用,但各数据库有特定实现。SQL常用于Web应用后端,通过用户输入动态构建查询,若缺乏有效验证,易受SQL注入攻击。攻击者可借此绕过认证、窃取数据、篡改内容,甚至执行系统命令。OWASP将其列为头号Web威胁。防御需结合输入验证、参数化查询及错误消息处理,并借助IPS等网络防护措施。
|
9天前
|
Java 测试技术 Linux
生产环境发布管理
本文介绍大型团队如何通过自动化部署平台实现多环境(dev/test/pre/prod)高效发布与运维,涵盖环境职责、CI/CD流程、分支管理、容器化部署及基于Skywalking的日志链路追踪,提升发布效率与系统稳定性。
|
9天前
|
SQL Dubbo Java
线程池:故障梳理总结
本文从故障与技术双重视角,总结线程池满导致服务不可用的常见成因与规避方案。涵盖数据库慢查询、锁争用、DDL阻塞、连接池配置不当等典型问题,并结合真实案例剖析根因。强调fast-fail理念,提出超时控制、资源隔离、流控背压、谨慎重试等最佳实践,助力开发者提升系统稳定性。