Mongodb mongo和mongod之间的实际区别是什么?
然而,刚安装完mongodb,我还不能完全理解Mongodb mongo和mongod之间的实际区别是什么?,mongodb,Mongodb,然而,刚安装完mongodb,我还不能完全理解mongo与mongod命令之间的区别。是的,我明白 mongod是MongoDB系统的主守护进程 那 mongo是MongoDB的交互式JavaScript shell接口 但这实际上意味着什么?我假设每次我想使用mongodb时,我都需要先运行mongod。但是,为什么我能够在没有首先启动mongod的情况下运行mongo?mongo是否在后台自动运行mongod?其次,如果我运行mongod,它最终会以以下内容结束 正在等待端口27017上的连
mongo
与mongod
命令之间的区别。是的,我明白
mongod是MongoDB系统的主守护进程
那
mongo是MongoDB的交互式JavaScript shell接口
但这实际上意味着什么?我假设每次我想使用mongodb时,我都需要先运行mongod
。但是,为什么我能够在没有首先启动mongod
的情况下运行mongo
?mongo
是否在后台自动运行mongod
?其次,如果我运行mongod
,它最终会以以下内容结束
正在等待端口27017上的连接
但之后我就不能再打字了。同样,我假设mongodb是在后台启动的,所以我可以安全地关闭终端。但是,如果我(在mac电脑上)错误地关闭了终端,如何在终端上恢复?另外,如何终止服务以使其停止侦听端口
如你所见,我有一大堆简单的问题。。。但大多数都与when和when not to
mongo
或mongod
的实际用途有关。我似乎在网上找不到任何有助于我从实际意义上解释这些的东西。使用mongod
您正在启动机器上的服务器。正如您正确指出的,mongo
是您的客户机,您的用户界面,如果您愿意的话。默认情况下,它连接到MongoDB的本地实例。如果在没有运行服务器实例的情况下启动客户端,则必须“告诉”它应该连接到哪里(例如远程实例):
与大多数数据库软件一样,Mongo分为服务器和客户端。服务器是存储和管理数据的主要数据库组件。客户端有各种风格,连接到服务器以插入或查询数据
mongod
是服务器部分。你开始它,它运行,故事结束。mongo
是默认的命令行客户端。启动它,连接到服务器,输入命令,然后退出
您必须首先运行mongod
,否则您将无法与数据库进行交互。只需在命令行上运行mongod
,它将成为最前端的运行应用程序,并且它不提供任何交互性。所以,是的,你只会看到像“等待连接…”之类的东西,没有别的。您通常不会像在命令行上那样运行mongod
。您通常会创建一个init.d脚本或启动文件,或者以任何方式管理守护进程,并让系统在系统启动时自动启动它
如果您想一次性启动mongod
,而不让它在您的系统上永久运行,请将其置于后台:
$ mongod &
&
将其置于后台,您可以继续使用命令行。你可以看到它,然后像这样杀死它:
~ deceze$ mongod &
[1] 1065
~ deceze$ jobs
[1]+ Running mongod &
~ deceze$ kill %1
[1]+ Done mongod
服务器运行后,启动mongo
,连接到服务器并与之交互。如果您试图在没有运行服务器的情况下运行mongo
,它会抱怨无法连接:
~ deceze$ mongo
MongoDB shell version: 3.0.2
connecting to: test
2015-08-13T09:36:13.518+0200 W NETWORK Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused
2015-08-13T09:36:13.521+0200 E QUERY Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed
at connect (src/mongo/shell/mongo.js:179:14)
at (connect):1:6 at src/mongo/shell/mongo.js:179
exception: connect failed
如果您的
mongo
shell确实连接到某个东西,您可能会在不知不觉中在您的系统上运行另一个mongod
实例。我没有安装mongod,只是:brew安装mongodb,然后:brew服务启动mongodb,让它永久运行running@deceze这个的conf文件在哪里?当我编辑mongodb.conf或monbod.conf时,在运行mongod时,没有什么显示不同