"mongo"和"mongod"之间的区别是什么?

5

我已经安装了MongoDB,但发现一些不合逻辑的问题,希望有人能回答我的疑问:

  1. When I execute "mongo" I get logged into shell
  2. When I execute "mongodb" I get the following errors:

     2016-06-23T22:58:39.302+0000 I CONTROL  [initandlisten] MongoDB starting : pid=7221 port=27017 dbpath=/data/db 64-bit host=debian
     2016-06-23T22:58:39.302+0000 I CONTROL  [initandlisten] db version v3.2.7
     2016-06-23T22:58:39.302+0000 I CONTROL  [initandlisten] git version: 
     4249c1d2b5999ebbf1fdf3bc0e0e3b3ff5c0aaf2
     2016-06-23T22:58:39.302+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1t  3 May 2016
     2016-06-23T22:58:39.302+0000 I CONTROL  [initandlisten] allocator: tcmalloc
     2016-06-23T22:58:39.302+0000 I CONTROL  [initandlisten] modules: none
     2016-06-23T22:58:39.302+0000 I CONTROL  [initandlisten] build environment:
     2016-06-23T22:58:39.302+0000 I CONTROL  [initandlisten]     distmod: debian71
     2016-06-23T22:58:39.303+0000 I CONTROL  [initandlisten]     distarch: x86_64
     2016-06-23T22:58:39.303+0000 I CONTROL  [initandlisten]     target_arch: x86_64
     2016-06-23T22:58:39.303+0000 I CONTROL  [initandlisten] options: {}
     2016-06-23T22:58:39.325+0000 E NETWORK  [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
     2016-06-23T22:58:39.325+0000 E NETWORK  [initandlisten]   addr already in use
     2016-06-23T22:58:39.325+0000 E STORAGE  [initandlisten] Failed to set up sockets during startup.
     2016-06-23T22:58:39.325+0000 I CONTROL  [initandlisten] dbexit:  rc: 48
    

mongo和mongodb两个终端命令有何区别?

MongoDB非常棒,因为我的项目是无模式的,但配置它、创建角色、授权等过程总是很糟糕的体验。

谢谢。


mongod是用于数据库的,而mongo是用于Mongo命令行的。 - Mohammed Mohsin
2个回答

4
  • mongod是服务器,用于传递连接数据库的请求。
  • 在上面的错误中,它显示端口地址27017已被使用。这意味着您的mongod已经在运行。您只需要运行命令“mongo”即可访问Mongodb shell。
  • 另一种可能性是某个其他进程正在使用端口27017
  • netstat -n | grep 27017检查进程是否在运行并使用kill -9 $(lsof -ti:27017)

谢谢你的回答。当我执行“mongodb”时,会出现很多错误。我应该担心吗?因为我可以使用“mongo”登录。现在返回 **警告:软限制太低。rlimits设置为7982个进程,65536个文件。进程数应至少为32768:文件数的0.5倍。 使用目录'/data/db/diagnostic.data'初始化全时诊断数据捕获 使用目录'/data/db/diagnostic.data'初始化全时诊断数据捕获 在端口27017上等待连接 - Nedim

3
使用任何数据库服务,您都需要启动数据库服务器,mongodb也是如此。 命令mongod用于在本地计算机或服务器上启动MongoDB服务器。
在你的问题中,你问到的命令是mongodb,这是不正确的, 您需要运行命令mongod,'b'不是该命令的一部分。
当你运行mongod时,它会在默认端口27017上启动mongodb服务器。然后您打开另一个终端并使用命令mongo进入mongo shell并执行数据库操作。
两个命令之间的区别在于mongod启动mongodb服务器,而mongo允许您进入mongo shell以执行更多的数据库操作。
此外,在安装mongodb时,您可以选择将其安装为“服务”。 将mongodb安装为服务会在您启动系统时在后台启动mongodb服务器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接