mongod是用来启动/关闭MongoDb服务器的命令。服务器启动时的相关参数,有两种处理方式

  • mongod的命令行上
  • 设置到配置文件中

一、速查表

 

二、一般性的参数

2.1. 查看帮助信息

[thomaschen@localhost bin]$ ./mongod --help
## 省略输出N多字

2.2. 查看数据库的版本信息

[thomaschen@localhost bin]$ ./mongod --version
db version v3.4.6
git version: c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5
allocator: tcmalloc
modules: none
build environment:
    distarch: x86_64
    target_arch: x86_64

 

三、启动服务器相关参数

3.1. 网络相关参数

3.1.1. IP6支持(默认不支持)

启动IP6地址的支持。通过参数--ip6参数来启动IP6地址的支持

3.1.2. 绑定IP地址(默认是服务器所有的IP地址)

有时一台服务器可能有多个IP地址,比如说一台服务器有一个外部IP地址和一个内部IP地址,如果只允许内网的机器访问MongoDb,则可以将MongoDb绑定到内网IP地址上,这样外网的机器将不能访问MongoDb。绑定IP地址使用--bind_ip=arg参数,如果有多个IP地址需要绑定,则以逗号分隔。

3.1.3. 设置端口port(默认是27017)

MongoDb服务器启动时,其数据访问端口默认是27017。使用--port=arg参数,可以来修改服务器监听的数据访问端口

3.1.4. 客户端并发连接最大值(默认是1000000,一百万)

设置MongoDb可以同时接受的客户端连接并发量最大值。使用--maxConns=arg参数来修改这个数据值,最少是5。一旦超出了并发连接的最大值。

服务器端会爆出如下信息:

2017-09-30T10:26:00.116+0800 I NETWORK  [thread1] connection accepted from 127.0.0.1:50523 #6 (6 connections now open)
2017-09-30T10:26:00.117+0800 I NETWORK  [thread1] connection refused because too many open connections: 5

客户端会爆出如下信息:

connecting to: mongodb://127.0.0.1:27017
2017-09-30T10:26:00.118+0800 I NETWORK  [thread1] Socket recv() 远程主机强迫关闭了一个现有的连接。 127.0.0.1:27017
2017-09-30T10:26:00.120+0800 I NETWORK  [thread1] SocketException: remote: (NONE):0 error: 9001 socket exception [RECV_ERROR] server [127.0.0.1:27017]
2017-09-30T10:26:00.120+0800 E QUERY    [thread1] Error: network error while attempting to run command 'isMaster' on host '127.0.0.1:27017'  :
connect@src/mongo/shell/mongo.js:237:13 @(connect):1:6 
exception: connect failed

3.2. 存储相关的参数

3.2.1. 指定数据文件目录

使用--dbpath=args来指定数据文件所在目录。

[root@localhost bin]# ./mongod --dbpath=/usr/local/mongodb/data/db
2017-09-29T20:34:50.998-0700 I CONTROL  [initandlisten] MongoDB starting : pid=3246 port=27017 dbpath=/usr/local/mongodb/data/db 64-bit host=localhost.localdomain
2017-09-29T20:34:50.998-0700 I CONTROL  [initandlisten] db version v3.4.6
2017-09-29T20:34:50.998-0700 I CONTROL  [initandlisten] git version: c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5
2017-09-29T20:34:50.998-0700 I CONTROL  [initandlisten] allocator: tcmalloc
2017-09-29T20:34:50.998-0700 I CONTROL  [initandlisten] modules: none
2017-09-29T20:34:50.998-0700 I CONTROL  [initandlisten] build environment:
2017-09-29T20:34:50.999-0700 I CONTROL  [initandlisten]     distarch: x86_64
2017-09-29T20:34:50.999-0700 I CONTROL  [initandlisten]     target_arch: x86_64
2017-09-29T20:34:50.999-0700 I CONTROL  [initandlisten] options: { storage: { dbPath: "/usr/local/mongodb/data/db" } }
2017-09-29T20:34:51.116-0700 I -        [initandlisten] Detected data files in /usr/local/mongodb/data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-09-29T20:34:51.116-0700 I STORAGE  [initandlisten] 
2017-09-29T20:34:51.116-0700 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-09-29T20:34:51.116-0700 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-09-29T20:34:51.116-0700 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=256M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-09-29T20:34:53.112-0700 I CONTROL  [initandlisten] 
2017-09-29T20:34:53.112-0700 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-09-29T20:34:53.112-0700 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-09-29T20:34:53.112-0700 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-09-29T20:34:53.112-0700 I CONTROL  [initandlisten] 
2017-09-29T20:34:53.113-0700 I CONTROL  [initandlisten] 
2017-09-29T20:34:53.113-0700 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-09-29T20:34:53.113-0700 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2017-09-29T20:34:53.113-0700 I CONTROL  [initandlisten] 
2017-09-29T20:34:53.113-0700 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-09-29T20:34:53.113-0700 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2017-09-29T20:34:53.113-0700 I CONTROL  [initandlisten] 
2017-09-29T20:34:53.199-0700 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/usr/local/mongodb/data/db/diagnostic.data'
2017-09-29T20:34:53.201-0700 I NETWORK  [thread1] waiting for connections on port 27017

 

3.2.2. 存储引擎(默认的存储引擎是WiredTiger)

存储引擎(Storage Engine)是MongoDB的核心组件,负责管理数据如何存储在硬盘(Disk)和内存(Memory)上。从MongoDB 3.2 版本开始,MongoDB 支持多数据存储引擎(Storage Engine),MongoDB支持的存储引擎有:WiredTiger,MMAPv1和In-Memory。从MongoDB 3.2 版本开始,WiredTiger成为MongDB默认的Storage Engine,用于将数据持久化存储到硬盘文件中,WiredTiger提供文档级别(Document-Level)的并发控制,检查点(CheckPoint),数据压缩和本地数据加密( Native Encryption)等功能。MongoDB不仅能将数据持久化存储到硬盘文件中,而且还能将数据只保存到内存中;In-Memory存储引擎用于将数据只存储在内存中,只将少量的元数据和诊断日志(Diagnostic)存储到硬盘文件中,由于不需要Disk的IO操作,就能获取索取的数据,In-Memory存储引擎大幅度降低了数据查询的延迟(Latency)。

通过参数--storageEngine =wiredTiger | inMemory来指定数据库所使用的存储引擎。如果--storageEngine=wiredTiger,则表示使用wiredTiger引擎;如果--storageEngine=inMemory,则表示使用内存引擎。

四、WEB监控

MongoDb内置提供了Web监控服务,其端口号 = MongoDb的端口 + 1000。默认的MongoDb的端口是27017,所有相应的Web服务访问端口就是28017=27017+1000。通过--httpinterface参数来启用Web监控服务,通过--rest参数来启动运行REST

[thomaschen@localhost bin]$ mongod --dbpath=/usr/local/mongodb/data/db --httpinterface --rest --port=28017

这样打开浏览器http://localhost:29017即可访问

mongodb关闭权限验证 如何干净地关闭mongodb服务器?_mongodb关闭权限验证

五、Windows平台相关参数

5.1.1. 安装windows服务

使用--install来安装服务,--serviceName来指定服务名,----serviceDisplayName来指定服务现实的名称。安装时应该将服务名和服务显示的名称一致,方便后续的管理。

D:\MongoDB\MongoDB-3.4>D:\MongoDB\MongoDB-3.4\bin\mongod --dbpath=D:\MongoDB\MongoDB-3.4\data\db --logpath=D:\MongoDB\MongoDB-3.4\data\log\mongodb.log --install --serviceName=mongodb3.4 --serviceDisplayName=mongodb3.4

5.1.2 删除windows服务

使用--remove来删除服务,--serviceName指定服务名

D:\MongoDB\MongoDB-3.4>D:\MongoDB\MongoDB-3.4\bin\mongod --remove --serviceName=mongodb3.4