繁体   English   中英

Mongodb - 运行“mongo”和“mongod”数据库的区别

[英]Mongodb - Difference between running “mongo” and “mongod” databases

所以,我确定我在这里遗漏了一些简单的东西,但是当我将 mongo 作为守护程序运行时(使用 mongod --fork 或仅使用 mongod),我看到的数据库内容与在主机上运行“mongo”不同.

我唯一的假设是,当它只运行 shell 时,数据存储在 /data/db 以外的其他地方,并在我启动 mongod 时切换到 /data/db。 在这种情况下,我如何在运行 mongod 时获取我的数据?

我认为这里有些混乱。

mongod是“Mongo Daemon”,它基本上是数据库的宿主进程。 当您启动mongod您基本上是在说“启动 MongoDB 进程并在后台运行它” mongod有几个默认参数,比如将数据存储在/data/db ,运行在 27017 端口。

mongo是连接到特定mongod实例的命令行 shell。 当您不带参数运行mongo ,它默认连接到端口 27017 上的本地主机。如果您对无效的 machine:port 组合运行mongo ,那么它将无法连接(并告诉您尽可能多的信息)。

理想情况下,除了“玩耍”之外,您还可以使用命令行参数来启动mongod 通过同样的措施,您应该使用明确的指令启动mongo shell。

根据您的描述,我认为您可能会遇到有关使用默认数据库的问题。 尝试使用以下内容启动mongo (其中dbname是您的数据库名称)

./mongo localhost:27017/dbname

是的,这可能是对这个问题的幼稚回答,但我提出来是为了让人们可以轻松理解!

蒙戈:

蒙哥

(Mongo Daemon 的简称)是 MongoDB 服务器用来完成任务的后台进程。 该进程负责管理整个 MongoDB 服务器的任务,例如接受请求、响应用户、管理 MongoDB 服务器操作的内存需求以及其他 MongoDB 服务器运行必不可少的事情。

TLDR; 基本上它是MongoDB服务器

蒙哥:

蒙戈

另一方面,是 MongoDB 的交互式 JavaScript shell 接口,它为系统管理员提供了一个强大的接口,也为开发人员提供了一种直接使用数据库测试查询和操作的方法。 mongo 还提供了一个功能齐全的 JavaScript 环境,用于与 MongoDB 一起使用

TLDR; 基本上我认为它是 mongodb 客户端,可以用作外壳来访问 MongoDB 数据库服务器运行我的 mongod 实例

Mongo D (守护进程)。 用简单的“Hello world”的话——你不会直接与 Mongod 交流。 相反,您使用数据库客户端

你会发现更多这样的工具。

在您的情况下,您想使用Mongo Shell客户端( mongo命令)。

视觉

查看“客户端”-“实际操作”的一个好方法是并排打开两个(或更多)终端。

运行mongod (没有 MongoDB 服务器安装和运行,mongo 命令将无法工作),然后运行mongo

在此处输入图片说明

输出( 1 connection: application mongo shell } 在此处输入图片说明

接下来,运行一些CRUD操作并查看mongod下的消息。

如果你连接Compass 客户端,同样的想法: 在此处输入图片说明

管理 mongodb 进程文档(更改数据目录、端口等): https : //docs.mongodb.com/manual/tutorial/manage-mongodb-processes/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM