《MongoDB管理与开发精要》——2.3节启动数据库

简介: 本节书摘来自华章社区《MongoDB管理与开发精要》一书中的第2章,第2.3节启动数据库,作者:红 丸,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.3 启动数据库
MongoDB安装、配置完后,必须先启动,然后才能使用它。怎样启动呢?下面介绍3种方式启动实例。
2.3.1 命令行方式
MongoDB默认存储数据目录为/data/db/(或者C:/data/db),默认端口为27017,默认HTTP 端口为28017。当然,也可以改成其他目录,只需要指定“dbpath”参数,如下面的代码所示:

[root@localhost ~]# /Apps/mongo/bin/mongod --dbpath=/data/db
Sun Apr  8 22:41:06 [initandlisten] MongoDB starting : pid=13701 
port=27017 dbpath=/data/db 32-bit 
......
Sun Apr  8 22:41:06 [initandlisten] waiting for connections on port 27017
Sun Apr  8 22:41:06 [websvr] web admin interface listening on port 28017

2.3.2 配置文件方式
如果是专业的DBA,在实例启动时需要加很多的参数,以便使系统运行得更加稳定。可能启动时在mongod后面加一长串的参数,这样看起来非常混乱,而且不好管理和维护。有什么方法让这些参数有条理呢?MongoDB支持同MySql一样的读取配置文件的方式来启动数据库,如下面的代码所示:

[root@localhost bin]# cat /etc/mongodb.cnf 
dbpath=/data/db/

启动时加上“-f”参数,并指向配置文件即可,如下面的代码所示:

[root@localhost bin]# ./mongod -f /etc/mongodb.cnf 
Mon May 28 18:27:18 [initandlisten] MongoDB starting : pid=18481 
port=27017 dbpath=/data/db/ 32-bit 
......
Mon May 28 18:27:18 [initandlisten] waiting for connections on port 27017
Mon May 28 18:27:18 [websvr] web admin interface listening on port 28017

2.3.3 Daemon方式
大家可能注意到,前面的两种方式都是在前台启动MongoDB进程,当启动MongoDB进程的Session窗口不小心关闭时,MongoDB进程也将随之停止,这无疑是非常不安全的。幸好,MongoDB提供了一种后台Daemon方式启动,只需加上一个“--fork”参数即可,这就可以方便地操作数据库的启动。要注意的是,用到了“--fork”参数就必须启用“--logpath”参数,这是强制性的,如下面的代码所示:

[root@localhost ~]# /Apps/mongo/bin/mongod --dbpath=/data/db --fork
--fork has to be used with --logpath
[root@localhost ~]# /Apps/mongo/bin/mongod --dbpath=/data/db 
--logpath=/data/log/r3.log --fork
all output going to: /data/log/r3.log
forked process: 19528
[root@localhost ~]#

2.3.4 mongod参数方式
最简单的就是通过执行mongod启动MongoDB数据库服务。mongod支持很多的参数,但都有默认值,其中最重要的是,需要指定数据文件路径,或者确保默认的/data/db存在并且有访问权限,否则启动后会自动关闭服务。也就是说,只要确保dbpath就可以启动MongoDB服务了。
mongod的主要参数见表2-3。


150f8ed1db623c4c807a93fa4a4e8a1352d9dfb6


f30f279baab12cff3732a9af23ced9f3c9995d93

在源代码中,mongod的参数分为一般参数、Windows参数、Replication参数、Replica Set参数、隐含参数。表2-3中列举的都是一般参数。如果要配置Replication、Replica Set等,还需要设置对应的参数,这里先不展开,将在第11章讲述。执行“mongod --help”可以看到对大多数参数的解释,但有一些隐含参数只能通过查看源代码来获得。隐含参数要么是还在开发中,要么是准备废弃,因此在生产环境中不建议使用。
可能你已经注意到,mongod的参数中没有设置内存大小相关的参数。是的,MongoDB使用os mmap机制来缓存数据文件数据,自身目前不提供缓存机制。这样做的好处是代码简单,mmap在数据量不超过内存时效率很高。但是数据量超过系统可用内存后,写入的性能可能不太稳定,容易出现大起大落。最新的1.8版本中,这种情况已经有了一定程度的改善。
这么多参数全部写在命令行中容易杂乱、不好管理,因此,mongod支持将参数写到一个配置文本文件中,然后通过“config”参数来引用此配置文件,如下面的代码所示:

./mongod --config /etc/mongo.cnf
相关文章
|
9月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
9月前
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
9月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
961 79
|
7月前
|
存储 JSON 数据建模
鸿蒙 HarmonyOS NEXT端云一体化开发-云数据库篇
云数据库采用存储区、对象类型、对象三级结构,支持灵活的数据建模与权限管理,可通过AGC平台或本地项目初始化,实现数据的增删改查及端侧高效调用。
362 1
|
9月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
380 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
11月前
|
存储 缓存 自然语言处理
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
339 8
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
|
9月前
|
存储 SQL 前端开发
跟老卫学HarmonyOS开发:ArkTS关系型数据库开发
本节以“账本”为例,使用关系型数据库接口实现账单的增、删、改、查操作。通过创建ArkTSRdb应用,演示如何操作RdbStore进行数据管理,并结合界面按钮实现交互功能。
423 0
跟老卫学HarmonyOS开发:ArkTS关系型数据库开发
|
8月前
|
运维 NoSQL 容灾
告别运维噩梦:手把手教你将自建 MongoDB 平滑迁移至云数据库
程序员为何逃离自建MongoDB?扩容困难、运维复杂、高可用性差成痛点。阿里云MongoDB提供分钟级扩容、自动诊断与高可用保障,助力企业高效运维、降本增效,实现数据库“无感运维”。
|
SQL 调度 数据库
开发YashanDB数据库?用 DBeaver for YashanDB 更顺手
数据库开发复杂易错,尤其在企业级场景中。为提升效率,YashanDB 团队基于 DBeaver 开源工具打造专属解决方案——DBeaver for YashanDB。它支持多类型数据库对象管理(表、视图、函数等),适配 YashanDB 特有表结构(HEAP、LSC),提供智能补全、语法高亮、SQL 调试等功能,让开发更高效流畅。推荐用于数据库应用开发团队、高频调试用户及中大型企业统一工具栈场景。

推荐镜像

更多
下一篇
开通oss服务