Database Manual / Self-Managed Deployments / Installation / MongoDB Package Components

mongod

Synopsis简介

mongod is the primary daemon process for the MongoDB system. It handles data requests, manages data access, and performs background management operations.是MongoDB系统的主要守护进程。它处理数据请求,管理数据访问,并执行后台管理操作。

This document provides a complete overview of all command line options for mongod. These command line options are primarily useful for testing: In common operation, use the configuration file options to control the behavior of your database.本文档提供了mongod所有命令行选项的完整概述。这些命令行选项主要用于测试:在常见操作中,使用配置文件选项来控制数据库的行为。

Note

MongoDB disables support for TLS 1.0 encryption on systems where TLS 1.1+ is available.MongoDB在TLS 1.1+可用的系统上禁用对TLS 1.0加密的支持。

Compatibility兼容性

Deployments hosted in the following environments use mongod:在以下环境中托管的部署使用mongod

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud:云中MongoDB部署的完全托管服务

Note

MongoDB Atlas manages the mongod for all MongoDB Atlas deployments.MongoDB Atlas为所有MongoDB Atlas部署管理mongod

  • MongoDB Enterprise: The subscription-based, self-managed version of MongoDB:MongoDB的基于订阅的自我管理版本
  • MongoDB Community: The source-available, free-to-use, and self-managed version of MongoDB:MongoDB的源代码可用、免费使用和自我管理版本

Considerations注意事项

  • mongod includes a Full Time Diagnostic Data Capture mechanism to assist MongoDB engineers with troubleshooting deployments. 包括一个全职诊断数据捕获机制,以协助MongoDB工程师对部署进行故障排除。If this thread fails, it terminates the originating process. To avoid the most common failures, confirm that the user running the process has permissions to create the FTDC diagnostic.data directory. 如果此线程失败,它将终止发起进程。为了避免最常见的故障,请确认运行该流程的用户有权创建FTDCdiagnostic.data(诊断数据)目录。For mongod the directory is within storage.dbPath. 对于mongod,目录位于storage.dbPath中。For mongos it is parallel to systemLog.path.对于mongos来说,它与systemLog.path并行。

Options选项

Changed in version 6.1.在版本6.1中的更改。

  • MongoDB always enables journaling. As a result, MongoDB removes the storage.journal.enabled option and the corresponding --journal and --nojournal command-line options.MongoDB始终支持日志记录。因此,MongoDB删除了storage.journal.enabled选项以及相应的--journal--nojournal命令行选项。

Changed in version 5.2.在版本5.2中的更改。

  • MongoDB removes the --cpu command-line option.MongoDB删除了--cpu命令行选项。

Changed in version 5.0.在版本5.0中的更改。

  • MongoDB removes the --serviceExecutor command-line option and the corresponding net.serviceExecutor configuration option.MongoDB删除了--serviceExecutor命令行选项和相应的net.serviceExecutor配置选项。

Core Options核心选项

--auth

Enables authorization to control user's access to database resources and operations. When authorization is enabled, MongoDB requires all clients to authenticate themselves first in order to determine the access for the client.启用授权以控制用户对数据库资源和操作的访问。启用授权后,MongoDB要求所有客户端首先进行身份验证,以确定客户端的访问权限。

To configure users, use the mongosh client. If no users exist, the localhost interface has access to the database until you create the first user.要配置用户,请使用mongosh客户端。如果不存在用户,则localhost接口可以访问数据库,直到您创建第一个用户。

See Security for more information.有关更多信息,请参阅安全

--bind_ip <hostnames|ipaddresses|Unix domain socket paths>

Default: 默认值:localhost

The hostnames and/or IP addresses and/or full Unix domain socket paths on which mongod should listen for client connections. You may attach mongod to any interface. mongod应该监听客户端连接的主机名和/或IP地址和/或完整的Unix域套接字路径。您可以将mongod附加到任何接口。To bind to multiple addresses, enter a list of comma-separated values.要绑定到多个地址,请输入逗号分隔值的列表。

Example示例

localhost,/tmp/mongod.sock

You can specify both IPv4 and IPv6 addresses, or hostnames that resolve to an IPv4 or IPv6 address.您可以指定IPv4和IPv6地址,或解析为IPv4或IPv6地址的主机名。

Example示例

localhost, 2001:0DB8:e132:ba26:0d5c:2774:e7f9:d513

Note

If specifying an IPv6 address or a hostname that resolves to an IPv6 address to --bind_ip, you must start mongod with --ipv6 to enable IPv6 support. 如果将IPv6地址或解析为IPv6地址的主机名指定为--bind_ip,,则必须以--ipv6开头mongod才能启用IPv6支持。Specifying an IPv6 address to --bind_ip does not enable IPv6 support.将IPv6地址指定为--bind_ip不会启用IPv6支持。

If specifying a link-local IPv6 address (fe80::/10), you must append the zone index to that address (i.e. fe80::<address>%<adapter-name>).如果指定一个链接本地IPv6地址fe80::/10),则必须将区域索引附加到该地址(即fe80::<address>%<adapter-name>)。

Example示例

localhost,fe80::a00:27ff:fee0:1fcf%enp0s3

Important

To avoid configuration updates due to IP address changes, use DNS hostnames instead of IP addresses. It is particularly important to use a DNS hostname instead of an IP address when configuring replica set members or sharded cluster members.为避免因IP地址更改而进行配置更新,请使用DNS主机名而不是IP地址。在配置副本集成员或分片集群成员时,使用DNS主机名而不是IP地址尤为重要。

Use hostnames instead of IP addresses to configure clusters across a split network horizon. Starting in MongoDB 5.0, nodes that are only configured with an IP address fail startup validation and do not start.使用主机名而不是IP地址来配置跨拆分网络范围的集群。从MongoDB 5.0开始,仅配置了IP地址的节点无法启动验证,也无法启动。

Warning

Before you bind your instance to a publicly-accessible IP address, you must secure your cluster from unauthorized access. For a complete list of security recommendations, see Security Checklist for Self-Managed Deployments. 在将实例绑定到可公开访问的IP地址之前,必须保护集群免受未经授权的访问。有关安全建议的完整列表,请参阅自我管理部署的安全检查表At minimum, consider enabling authentication and hardening network infrastructure.至少,考虑启用身份验证加强网络基础设施

For more information about IP Binding, refer to the IP Binding in Self-Managed Deployments documentation.有关IP绑定的更多信息,请参阅自我管理部署中的IP绑定文档

To bind to all IPv4 addresses, enter 0.0.0.0.要绑定到所有IPv4地址,请输入0.0.0.0

To bind to all IPv4 and IPv6 addresses, enter ::,0.0.0.0 or an asterisk "*" (enclose the asterisk in quotes to avoid filename pattern expansion). Alternatively, use the net.bindIpAll setting.要绑定到所有IPv4和IPv6地址,请输入::,0.0.0.0或星号"*"(将星号括在引号中以避免文件名模式扩展)。或者,使用net.bindIpAll设置。

Note

  • --bind_ip and --bind_ip_all are mutually exclusive. Specifying both options causes mongod to throw an error and terminate.--bind_ip--bind_ip_all是互斥的。指定这两个选项会导致mongod抛出错误并终止。
  • The command-line option --bind overrides the configuration file setting net.bindIp.命令行选项--bind覆盖配置文件设置net.bindIp
--bind_ip_all

If specified, the mongod instance binds to all IPv4 addresses (i.e. 0.0.0.0). If mongod starts with --ipv6, --bind_ip_all also binds to all IPv6 addresses (i.e. ::).如果指定,mongod实例将绑定到所有IPv4地址(即0.0.0.0)。如果mongod--ipv6开头,--bind_ip_all也会绑定到所有ipv6地址(即::)。

mongod only supports IPv6 if started with --ipv6. Specifying --bind_ip_all alone does not enable IPv6 support.mongod仅在以--ipv6启动时支持IPv6。单独指定--bind_ip_all并不能启用IPv6支持。

Warning

Before you bind your instance to a publicly-accessible IP address, you must secure your cluster from unauthorized access. For a complete list of security recommendations, see Security Checklist for Self-Managed Deployments. 在将实例绑定到可公开访问的IP地址之前,必须保护集群免受未经授权的访问。有关安全建议的完整列表,请参阅自我管理部署的安全检查表At minimum, consider enabling authentication and hardening network infrastructure.至少,考虑启用身份验证加强网络基础设施

For more information about IP Binding, refer to the IP Binding in Self-Managed Deployments documentation.有关IP绑定的更多信息,请参阅自我管理部署中的IP绑定文档

Alternatively, you can set the --bind_ip option to ::,0.0.0.0 or to an asterisk "*" (enclose the asterisk in quotes to avoid filename pattern expansion).或者,您可以将--bind_ip选项设置为::,0.0.0.0或星号"*"(将星号括在引号中以避免文件名模式扩展)。

Note

--bind_ip and --bind_ip_all are mutually exclusive. That is, you can specify one or the other, but not both.--bind_ip--bind_ip_all是互斥的。也就是说,您可以指定其中一个,但不能同时指定两个。

--clusterIpSourceAllowlist <string>

New in version 5.0.在版本5.0中新增。

A list of IP addresses/CIDR (Classless Inter-Domain Routing) ranges against which the mongod validates authentication requests from other members of the replica set and, if part of a sharded cluster, the mongos instances. IP地址/CIDR(无类域间路由)范围列表,mongod根据这些范围验证来自副本集其他成员的身份验证请求,如果是分片集群的一部分,则验证mongos实例的身份验证。The mongod verifies that the originating IP is either explicitly in the list or belongs to a CIDR range in the list. mongod验证发起IP是否明确地在列表中,或者是否属于列表中的CIDR范围。If the IP address is not present, the server does not authenticate the mongod or mongos.如果IP地址不存在,则服务器不会对mongodmongos进行身份验证。

--clusterIpSourceAllowlist has no effect on a mongod started without authentication.对未经身份验证启动的mongod没有影响。

--clusterIpSourceAllowlist accepts multiple comma-separated IPv4/6 addresses or Classless Inter-Domain Routing (CIDR) ranges:接受多个逗号分隔的IPv4/6地址或无类域间路由(CIDR)范围:

mongod --clusterIpSourceAllowlist 192.0.2.0/24,127.0.0.1,::1

Important

Ensure --clusterIpSourceAllowlist includes the IP address or CIDR ranges that include the IP address of each replica set member or mongos in the deployment to ensure healthy communication between cluster components.确保--clusterIpSourceAllowlist包含IP地址或CIDR范围,其中包括部署中每个副本集成员或mongos的IP地址,以确保集群组件之间的健康通信。

--config <filename>, -f <filename>

Specifies a configuration file for runtime configuration options. The configuration file is the preferred method for runtime configuration of mongod. 指定运行时配置选项的配置文件。配置文件是mongod运行时配置的首选方法。The options are equivalent to the command-line configuration options. See Self-Managed Configuration File Options for more information.这些选项与命令行配置选项等效。有关详细信息,请参阅自我管理配置文件选项

Ensure the configuration file uses ASCII encoding. The mongod instance does not support configuration files with non-ASCII encoding, including UTF-8.确保配置文件使用ASCII编码。mongod实例不支持非ASCII编码的配置文件,包括UTF-8。

--configExpand <none|rest|exec>

Default: 默认值:none

Enables using Expansion Directives in configuration files. Expansion directives allow you to set externally sourced values for configuration file options.允许在配置文件中使用扩展指令。扩展指令允许您为配置文件选项设置外部来源的值。

--configExpand supports the following expansion directives:支持以下扩展指令:

ValueDescription描述
noneDefault. 默认值。mongod does not expand expansion directives. mongod fails to start if any configuration file settings use expansion directives.mongod不扩展扩展指令。如果任何配置文件设置使用扩展指令,mongod将无法启动。
restmongod expands __rest expansion directives when parsing the configuration file.mongod在解析配置文件时扩展__rest扩展指令。
execmongod expands __exec expansion directives when parsing the configuration file.mongod在解析配置文件时扩展__exec扩展指令。

You can specify multiple expansion directives as a comma-separated list, for example: rest, exec. 您可以将多个扩展指令指定为逗号分隔的列表,例如:rest, execIf the configuration file contains expansion directives not specified to --configExpand, the mongod returns an error and terminates.如果配置文件包含未指定为--configExpand的扩展指令,mongod将返回错误并终止。

See Externally Sourced Configuration File Values for Self-Managed Deployments for configuration files for more information on expansion directives.有关扩展指令的更多信息,请参阅配置文件的自管理部署的外部源配置文件值

--filePermissions <path>

Default: 默认值:0700

Sets the permission for the UNIX domain socket file.设置UNIX域套接字文件的权限。

--filePermissions applies only to Unix-based systems.仅适用于基于Unix的系统。

--fork

Enables a daemon mode that runs the mongod process in the background. 启用后台运行mongod进程的守护进程模式。The --fork option is not supported on Windows.Windows不支持--fork选项。

By default mongod does not run as a daemon. You run mongod as a daemon by using either --fork or a controlling process that handles daemonization, such as upstart or systemd.默认情况下,mongod不作为守护进程运行。您可以使用--fork或处理守护进程的控制进程(如upstartsystemd)将mongod作为守护进程运行。

To use --fork, configure log output for the mongod with one of the following:要使用--fork,请使用以下方法之一配置mongod的日志输出:

--help, -h
Returns information on the options and use of mongod.返回有关mongod的选项和使用的信息。
--ipv6

Enables IPv6 support. mongod disables IPv6 support by default.启用IPv6支持。mongod默认禁用IPv6支持。

Setting --ipv6 does not direct the mongod to listen on any local IPv6 addresses or interfaces. To configure the mongod to listen on an IPv6 interface, you must either:设置--ipv6会指示mongod监听任何本地ipv6地址或接口。要将mongod配置为在IPv6接口上侦听,您必须:

  • Configure --bind_ip with one or more IPv6 addresses or hostnames that resolve to IPv6 addresses, or使用一个或多个IPv6地址或解析为IPv6地址的主机名配置--bind_ip,或
  • Set --bind_ip_all to true.--bind_ip_all设置为true
--keyFile <file>

Specifies the path to a key file that stores the shared secret that MongoDB instances use to authenticate to each other in a sharded cluster or replica set. 指定存储MongoDB实例在分片集群副本集中用于相互身份验证的共享键的键文件的路径。--keyFile implies --auth. See Self-Managed Internal/Membership Authentication for more information.--keyFile表示--auth。有关更多信息,请参阅自我管理内部/成员身份验证

Keyfiles for internal membership authentication use YAML format to allow for multiple keys in a keyfile. The YAML format accepts either:用于内部成员身份验证的键文件使用YAML格式,允许在一个键文件中使用多个键。YAML格式接受以下任一格式:

  • A single key string (same as in earlier versions)单个键字符串(与早期版本相同)
  • A sequence of key strings一串键串

The YAML format is compatible with the existing single-key keyfiles that use the text file format.YAML格式与使用文本文件格式的现有单键键文件兼容。

--listenBacklog <number>

Default: 默认值:Target system SOMAXCONN constant目标系统SOMAXCONN常数

The maximum number of connections that can exist in the listen queue.侦听队列中可以存在的最大连接数。

Warning

Consult your local system's documentation to understand the limitations and configuration requirements before using this parameter.在使用此参数之前,请参阅本地系统的文档以了解限制和配置要求。

Important

To prevent undefined behavior, specify a value for this parameter between 1 and the local system SOMAXCONN constant.为防止未定义的行为,请为此参数指定一个介于1和本地系统SOMAXCONN常量之间的值。

The default value for the listenBacklog parameter depends on the target system. On Linux, MongoDB uses /proc/sys/net/core/somaxconn. On all other target systems, MongoDB uses the compile time constant SOMAXCONN.listenBacklog参数的默认值取决于目标系统。在Linux上,MongoDB使用/proc/sys/net/core/somaxconn。在所有其他目标系统上,MongoDB使用编译时常数SOMAXCONN

Some systems may interpret SOMAXCONN symbolically, and others numerically. The actual listen backlog applied in practice may differ from any numeric interpretation of the SOMAXCONN constant or argument to --listenBacklog.一些系统可以象征性地解释SOMAXCONN,而另一些系统则可以数字地解释。实际应用的监听积压可能与SOMAXCONN常量或--listenBacklog参数的任何数值解释不同。

Passing a value for the listenBacklog parameter that exceeds the SOMAXCONN constant for the local system is, by the letter of the standards, undefined behavior. 根据标准,为listenBacklog参数传递超过本地系统SOMAXCONN常数的值是未定义的行为。Higher values may be silently integer truncated, may be ignored, may cause unexpected resource consumption, or have other adverse consequences.较高的值可能会被默默地截断整数,可能会被忽略,可能会导致意外的资源消耗,或产生其他不利后果。

--logappend
Appends new entries to the end of the existing log file when the mongod instance restarts. Without this option, mongod backs up the existing log and create a new file.mongod实例重新启动时,将新条目附加到现有日志文件的末尾。如果没有此选项,mongod将备份现有日志并创建一个新文件。
--logpath <path>

Sends all diagnostic logging information to a log file instead of to standard output or to the host's syslog system. MongoDB creates the log file at the path you specify.将所有诊断日志信息发送到日志文件,而不是标准输出或主机的syslog系统。MongoDB在您指定的路径上创建日志文件。

By default, MongoDB moves any existing log file rather than overwriting it. To instead append to the log file, set the --logappend option.默认情况下,MongoDB会移动任何现有的日志文件,而不是覆盖它。要将其追加到日志文件中,请设置--logappend选项。

--logRotate <string>

Default: 默认值:rename

Determines the behavior for the logRotate command when rotating the server log and/or the audit log. Specify either rename or reopen:确定logRotate命令在旋转服务器日志和/或审核日志时的行为。指定rename(重命名)或reopen(重新打开):

  • rename renames the log file.重命名日志文件。
  • reopen closes and reopens the log file following the typical Linux/Unix log rotate behavior. Use reopen when using the Linux/Unix logrotate utility to avoid log loss.按照典型的Linux/Unix日志轮换行为关闭和重新打开日志文件。使用Linux/Unix logrotate实用程序时使用reopen以避免日志丢失。

    If you specify reopen, you must also use --logappend.如果指定reopen,则还必须使用--logappend

--maxConns <number>

The maximum number of simultaneous connections that mongod accepts. This setting has no effect if it is higher than your operating system's configured maximum connection tracking threshold.mongod接受的最大并发连接数。如果此设置高于操作系统配置的最大连接跟踪阈值,则此设置无效。

Do not assign too low of a value to this option, or you will encounter errors during normal application operation.不要为此选项分配太低的值,否则在正常的应用程序操作过程中会遇到错误。

--networkMessageCompressors <string>

Default: 默认值:snappy,zstd,zlib

Specifies the default compressor(s) to use for communication between this mongod instance and:指定用于此mongod实例和之间通信的默认压缩器:

  • other members of the deployment if the instance is part of a replica set or a sharded cluster如果实例是副本集或分片集群的一部分,则部署的其他成员
  • mongosh
  • drivers that support the OP_COMPRESSED message format.支持OP_COMPRESSED消息格式的驱动程序。

MongoDB supports the following compressors:MongoDB支持以下压缩器:

Note

Both mongod and mongos instances default to snappy,zstd,zlib compressors, in that order.mongodmongos实例都默认按顺序使用snappy、zstd、zlib压缩器。

To disable network compression, set the value to disabled.要禁用网络压缩,请将该值设置为disabled

Important

Messages are compressed when both parties enable network compression. Otherwise, messages between the parties are uncompressed.当双方都启用网络压缩时,消息会被压缩。否则,双方之间的消息将不压缩。

If you specify multiple compressors, then the order in which you list the compressors matter as well as the communication initiator. 如果指定了多个压缩器,那么列出压缩器的顺序与通信发起者一样重要。For example, if mongosh specifies the following network compressors zlib,snappy and the mongod specifies snappy,zlib, messages between mongosh and mongod uses zlib.例如,如果mongosh指定了以下网络压缩器zlib,snappy,而mongod指定了snappy,zlib,则mongoshmongod之间的消息将使用zlib。

If the parties do not share at least one common compressor, messages between the parties are uncompressed. 如果双方不共享至少一个公共压缩器,则双方之间的消息将被解压缩。For example, if mongosh specifies the network compressor zlib and mongod specifies snappy, messages between mongosh and mongod are not compressed.例如,如果mongosh指定网络压缩器zlibmongod指定snappy,则mongoshmongod之间的消息不会被压缩。

--noauth
Disables authentication. Currently the default. Exists for future compatibility and clarity.禁用身份验证。目前为默认值。为了未来的兼容性和清晰度而存在。
--noscripting
Disables the scripting engine.禁用脚本引擎。
--notablescan
Forbids operations that require a collection scan. 禁止需要集合扫描的操作。See notablescan for additional information.有关更多信息,请参阅notablescan
--nounixsocket

Disables listening on the UNIX domain socket. --nounixsocket applies only to Unix-based systems.禁用UNIX域套接字上的侦听。--nounixsocket仅适用于基于Unix的系统。

The mongod process always listens on the UNIX socket unless one of the following is true:mongod进程始终侦听UNIX套接字,除非以下情况之一为真:

mongod installed from official Install MongoDB Community Edition and Install MongoDB Community Edition packages have the bind_ip configuration set to 127.0.0.1 by default.默认情况下,从官方安装MongoDB社区版安装MongoDB社区版软件包安装的mongodbind_ip配置设置为127.0.0.1

--outputConfig

Outputs the mongod instance's configuration options, formatted in YAML, to stdout and exits the mongod instance. mongod实例的配置选项(以YAML格式)输出到stdout并退出mongod示例。For configuration options that uses Externally Sourced Configuration File Values for Self-Managed Deployments, --outputConfig returns the resolved value for those options.对于使用外部源配置文件值进行自我管理部署的配置选项,--outputConfig将返回这些选项的解析值。

Warning

This may include any configured passwords or secrets previously obfuscated through the external source.这可能包括之前通过外部源混淆的任何配置密码或秘密。

For usage examples, see:有关使用示例,请参阅:

--pidfilepath <path>

Specifies a file location to store the process ID (PID) of the mongod process. The user running the mongod or mongos process must be able to write to this path. 指定一个文件位置来存储mongod进程的进程ID(PID)。运行mongodmongos进程的用户必须能够写入此路径。If the --pidfilepath option is not specified, the process does not create a PID file. This option is generally only useful in combination with the --fork option.如果未指定--pidfilepath选项,则进程不会创建PID文件。此选项通常仅与--fork选项结合使用。

Note

Linux

On Linux, PID file management is generally the responsibility of your distro's init system: usually a service file in the /etc/init.d directory, or a systemd unit file registered with systemctl. 在Linux上,PID文件管理通常由发行版的init系统负责:通常是/etc/init.d目录中的服务文件,或向systemctl注册的systemd单元文件。Only use the --pidfilepath option if you are not using one of these init systems. For more information, please see the respective Installation Guide for your operating system.如果您没有使用这些init系统之一,请仅使用--pidfilepath选项。有关更多信息,请参阅适用于您的操作系统的相应安装指南

Note

macOS

On macOS, PID file management is generally handled by brew. Only use the --pidfilepath option if you are not using brew on your macOS system. For more information, please see the respective Installation Guide for your operating system.在macOS上,PID文件管理通常由brew处理。仅当您未在macOS系统上使用brew时,才使用--pidfilepath选项。有关更多信息,请参阅适用于您的操作系统的相应安装指南。

--port <port>

Default:

The TCP port on which the MongoDB instance listens for client connections.MongoDB实例监听客户端连接的TCP端口。

The --port option accepts a range of values between 0 and 65535. Setting the port to 0 configures mongod to use an arbitrary port assigned by the operating system.--port选项接受065535之间的值范围。将端口设置为0将配置mongod使用操作系统分配的任意端口。

--quiet

Runs mongod in a quiet mode that attempts to limit the amount of output.在试图限制输出量的安静模式下运行mongod

This option suppresses:此选项抑制:

  • output from database commands数据库命令的输出
  • replication activity复制活动
  • connection accepted events连接接受事件
  • connection closed events连接关闭事件
  • client metadata客户端元数据
--redactClientLogData

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

A mongod running with --redactClientLogData redacts any message accompanying a given log event before logging. This prevents the mongod from writing potentially sensitive data stored on the database to the diagnostic log. 运行--redactClientLogDatamongod在记录之前会编辑给定日志事件附带的任何消息。这可以防止mongod将存储在数据库上的潜在敏感数据写入诊断日志。Metadata such as error or operation codes, line numbers, and source file names are still visible in the logs.元数据,如错误或操作代码、行号和源文件名,在日志中仍然可见。

Use --redactClientLogData in conjunction with Encryption at Rest and TLS/SSL (Transport Encryption) to assist compliance with regulatory requirements.--redactClientLogData静态加密TLS/SSL(传输加密)结合使用,以帮助遵守监管要求。

For example, a MongoDB deployment might store Personally Identifiable Information (PII) in one or more collections. 例如,MongoDB部署可能会将个人身份信息(PII)存储在一个或多个集合中。The mongod logs events such as those related to CRUD operations, sharding metadata, etc. It is possible that the mongod may expose PII as a part of these logging operations. mongod记录与CRUD操作、分片元数据等相关的事件。mongod可能会在这些日志操作中暴露PII。A mongod running with --redactClientLogData removes any message accompanying these events before being output to the log, effectively removing the PII.运行--redactClientLogDatamongod在输出到日志之前会删除伴随这些事件的任何消息,从而有效地删除PII。

Diagnostics on a mongod running with --redactClientLogData may be more difficult due to the lack of data related to a log event. 由于缺少与日志事件相关的数据,对运行--redactClientLogDatamongod进行诊断可能会更加困难。See the process logging manual page for an example of the effect of --redactClientLogData on log output.有关--redactClientLogData对日志输出的影响示例,请参阅进程日志记录手册页面。

On a running mongod, use setParameter with the redactClientLogData parameter to configure this setting.在正在运行的mongod上,使用setParameterredactClientLogData参数来配置此设置。

--setParameter <options>
Specifies one of the MongoDB parameters described in MongoDB Server Parameters for a Self-Managed Deployment. You can specify multiple setParameter fields.指定自我管理部署的MongoDB服务器参数中描述的MongoDB参数之一。您可以指定多个setParameter字段。
--shutdown

The --shutdown option cleanly and safely terminates the mongod process. --shutdown选项干净安全地终止mongod进程。When invoking mongod with this option you must set the --dbpath option either directly or by way of the configuration file and the --config option.使用此选项调用mongod时,必须直接或通过配置文件--config选项设置--dbpath选项。

The --shutdown option is available only on Linux systems.--shutdown选项仅在Linux系统上可用。

For additional ways to shut down, see also Stop mongod Processes.有关关闭的其他方法,请参阅停止mongod进程

--sysinfo
Returns diagnostic system information and then exits. The information provides the page size, the number of physical pages, and the number of available physical pages.返回诊断系统信息,然后退出。该信息提供了页面大小、物理页面数量和可用物理页面数量。
--syslog

Sends all logging output to the host's syslog system rather than to standard output or to a log file (--logpath).将所有日志输出发送到主机的syslog系统,而不是标准输出或日志文件(--logpath)。

The --syslog option is not supported on Windows.Windows不支持--syslog选项。

Warning

The syslog daemon generates timestamps when it logs a message, not when MongoDB issues the message. This can lead to misleading timestamps for log entries, especially when the system is under heavy load. syslog守护进程在记录消息时生成时间戳,而不是在MongoDB发出消息时生成。这可能会导致日志条目的时间戳产生误导,尤其是在系统负载过重的情况下。We recommend using the --logpath option for production systems to ensure accurate timestamps.我们建议在生产系统中使用--logpath选项,以确保时间戳的准确性。

MongoDB includes the component in its log messages to syslog.MongoDB在其发送给syslog的日志消息中包含了该组件

...  ACCESS   [repl writer worker 5] Unsupported modification to roles collection ...
--syslogFacility <string>

Default: 默认值:user

Specifies the facility level used when logging messages to syslog. The value you specify must be supported by your operating system's implementation of syslog. To use this option, you must enable the --syslog option.指定将消息记录到syslog时使用的设施级别。您指定的值必须得到操作系统syslog实现的支持。要使用此选项,必须启用--syslog选项。

--timeStampFormat <string>

Default: 默认值:iso8601-local

The time format for timestamps in log messages. Specify one of the following values:日志消息中时间戳的时间格式。指定以下值之一:

ValueDescription描述
iso8601-utcDisplays timestamps in Coordinated Universal Time (UTC) in the ISO-8601 format. 以ISO-8601格式显示协调世界时(UTC)中的时间戳。For example, for New York at the start of the Epoch: 例如,在纪元之初的纽约:1970-01-01T00:00:00.000Z
iso8601-localDisplays timestamps in local time in the ISO-8601 format. 以ISO-8601格式显示本地时间的时间戳。For example, for New York at the start of the Epoch: 例如,在纪元之初的纽约:1969-12-31T19:00:00.000-05:00

Note

--timeStampFormat no longer supports ctime. 不再支持ctimeAn example of ctime formatted date is: Wed Dec 31 18:17:54.811.ctime格式日期的一个例子是:Wed Dec 31 18:17:54.811

--timeZoneInfo <path>

The full path from which to load the time zone database. If this option is not provided, then MongoDB uses its built-in time zone database.加载时区数据库的完整路径。如果不提供此选项,则MongoDB将使用其内置的时区数据库。

The configuration file included with Linux and macOS packages sets the time zone database path to /usr/share/zoneinfo by default.Linux和macOS软件包附带的配置文件默认将时区数据库路径设置为/usr/share/zoneinfo

The built-in time zone database is a copy of the Olson/IANA time zone database. It is updated along with MongoDB releases, but the time zone database release cycle differs from the MongoDB release cycle. 内置时区数据库是Olson/IANA时区数据库的副本。它随MongoDB版本一起更新,但时区数据库发布周期与MongoDB发布周期不同。The most recent release of the time zone database is available on our download site.时区数据库的最新版本可在下载网站上找到。

wget https://downloads.mongodb.org/olson_tz_db/timezonedb-latest.zip
unzip timezonedb-latest.zip
mongod --timeZoneInfo timezonedb-2017b/

Warning

MongoDB uses the third party timelib library to provide accurate conversions between timezones. Due to a recent update, timelib could create inaccurate time zone conversions in older versions of MongoDB.MongoDB使用第三方timelib库来提供时区之间的准确转换。由于最近的更新,timelib可能会在旧版本的MongoDB中创建不准确的时区转换。

To explicitly link to the time zone database in versions of MongoDB prior to 5.0, download the time zone database. and use the timeZoneInfo parameter.要在5.0之前的MongoDB版本中明确链接到时区数据库,请下载时区数据库。并使用timeZoneInfo参数。

--traceExceptions
For internal diagnostic use only.仅供内部诊断使用。
--transitionToAuth

Allows the mongod to accept and create authenticated and non-authenticated connections to and from other mongod and mongos instances in the deployment. 允许mongod接受和创建与部署中的其他mongodmongos实例之间的已验证和未验证连接。Used for performing rolling transition of replica sets or sharded clusters from a no-auth configuration to internal authentication. 用于执行副本集或分片集群从无身份验证配置到内部身份验证的滚动转换。Requires specifying a internal authentication mechanism such as --keyFile.需要指定内部身份验证机制,如--keyFile

For example, if using keyfiles for internal authentication, the mongod creates an authenticated connection with any mongod or mongos in the deployment using a matching keyfile. If the security mechanisms do not match, the mongod utilizes a non-authenticated connection instead.例如,如果使用键文件进行内部身份验证mongod将使用匹配的键文件与部署中的任何mongodmongos创建经过身份验证的连接。如果安全机制不匹配,mongod将使用未经身份验证的连接。

A mongod running with --transitionToAuth does not enforce user access controls. Users may connect to your deployment without any access control checks and perform read, write, and administrative operations.运行--transitionToAuthmongod不会强制用户访问控制。用户可以在不进行任何访问控制检查的情况下连接到部署,并执行读取、写入和管理操作。

Note

A mongod running with internal authentication and without --transitionToAuth requires clients to connect using user access controls. 运行具有内部身份验证且没有--transitionToAuthmongod要求客户端使用用户访问控制进行连接。Update clients to connect to the mongod using the appropriate user prior to restarting mongod without --transitionToAuth.在不使用--transitionToAuth重新启动mongod之前,使用适当的用户更新客户端以连接到mongod

--unixSocketPrefix <path>

Default: 默认值:/tmp

The path for the UNIX socket. --unixSocketPrefix applies only to Unix-based systems.UNIX套接字的路径。--unixSocketPrefix仅适用于基于Unix的系统。

If this option has no value, the mongod process creates a socket with /tmp as a prefix. MongoDB creates and listens on a UNIX socket unless one of the following is true:如果此选项没有值,mongod进程将创建一个以/tmp为前缀的套接字。MongoDB在UNIX套接字上创建和监听,除非以下情况之一为真:

--verbose, -v

Increases the amount of internal reporting returned on standard output or in log files. Increase the verbosity with the -v form by including the option multiple times, for example: -vvvvv.增加标准输出或日志文件中返回的内部报告量。通过多次包含选项来增加-v形式的详细程度,例如:-vvvvv

Note

Starting in version 4.2, MongoDB includes the Debug verbosity level (1-5) in the log messages. 从4.2版本开始,MongoDB在日志消息中包含调试详细级别(1-5)。For example, if the verbosity level is 2, MongoDB logs D2. In previous versions, MongoDB log messages only specified D for Debug level.例如,如果详细程度为2,MongoDB会记录D2。在以前的版本中,MongoDB日志消息仅将调试级别指定为D

--version
Returns the mongod release number.返回mongod版本号。

LDAP Authentication or Authorization OptionsLDAP身份验证或授权选项

Note

Starting in MongoDB 8.0, LDAP authentication and authorization is deprecated. LDAP is available and will continue to operate without changes throughout the lifetime of MongoDB 8. LDAP will be removed in a future major release.从MongoDB 8.0开始,LDAP身份验证和授权被弃用。LDAP是可用的,并将在MongoDB 8的整个生命周期内继续运行而不做任何更改。LDAP将在未来的主要版本中删除。

For details, see LDAP Deprecation.

--ldapServers <host1>:<port>,<host2>:<port>,...,<hostN>:<port>

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

The LDAP server against which the mongod authenticates users or determines what actions a user is authorized to perform on a given database. If the LDAP server specified has any replicated instances, you may specify the host and port of each replicated server in a comma-delimited list.mongod对用户进行身份验证或确定用户有权在给定数据库上执行哪些操作的LDAP服务器。如果指定的LDAP服务器有任何复制实例,则可以在逗号分隔的列表中指定每个复一致性务器的主机和端口。

If your LDAP infrastructure partitions the LDAP directory over multiple LDAP servers, specify one LDAP server or any of its replicated instances to --ldapServers. 如果LDAP基础架构将LDAP目录分区到多个LDAP服务器上,请将一个LDAP服务器或其任何复制实例指定为--ldapServersMongoDB supports following LDAP referrals as defined in RFC 4511 4.1.10. Do not use --ldapServers for listing every LDAP server in your infrastructure.MongoDB支持RFC 4511 4.1.10中定义的以下LDAP引用。不要使用--ldapServers列出基础架构中的每个LDAP服务器。

This setting can be configured on a running mongod using setParameter.可以使用setParameter在正在运行的mongod上配置此设置。

If unset, mongod cannot use LDAP authentication or authorization.如果未设置,mongod将无法使用LDAP身份验证或授权

--ldapValidateLDAPServerConfig <boolean>

Available in MongoDB Enterprise在MongoDB企业版中可用。

A flag that determines if the mongod instance checks the availability of the LDAP server(s) as part of its startup:一个标志,用于确定mongod实例是否在启动过程中检查LDAP服务器的可用性:

  • If true, the mongod instance performs the availability check and only continues to start up if the LDAP server is available.如果为truemongod实例将执行可用性检查,并且仅在LDAP服务器可用时才继续启动。
  • If false, the mongod instance skips the availability check; i.e. the instance starts up even if the LDAP server is unavailable.如果为falsemongod实例将跳过可用性检查;即,即使LDAP服务器不可用,实例也会启动。
--ldapQueryUser <string>

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

The identity with which mongod binds as, when connecting to or performing queries on an LDAP server.连接到LDAP服务器或在LDAP服务器上执行查询时,mongod绑定为的标识。

Only required if any of the following are true:仅当以下任何一项为真时才需要:

You must use --ldapQueryUser with --ldapQueryPassword.您必须将--ldapQueryUser--ldapQueryPassword一起使用。

If unset, mongod doesn't attempt to bind to the LDAP server.如果未设置,mongod不会尝试绑定到LDAP服务器。

This setting can be configured on a running mongod using setParameter.可以使用setParameter在正在运行的mongod上配置此设置。

Note

Windows MongoDB deployments can use --ldapBindWithOSDefaults instead of --ldapQueryUser and --ldapQueryPassword. Windows MongoDB部署可以使用--ldapBindWithOSDefaults,而不是--ldapQueryUser--ldapQueryPasswordYou cannot specify both --ldapQueryUser and --ldapBindWithOSDefaults at the same time.不能同时指定--ldapQueryUser--ldapBindWithOSDefaults

--ldapQueryPassword <string | array>

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

The password used to bind to an LDAP server when using --ldapQueryUser. You must use --ldapQueryPassword with --ldapQueryUser.使用--ldapQueryUser时用于绑定到LDAP服务器的密码。您必须将--ldapQueryPassword--ldapQueryUser一起使用。

If not set, mongod does not attempt to bind to the LDAP server.如果未设置,mongod不会尝试绑定到LDAP服务器。

You can configure this setting on a running mongod using setParameter.您可以使用setParameter在正在运行的mongod上配置此设置。

The ldapQueryPassword setParameter command accepts either a string or an array of strings. ldapQueryPassword setParameter命令接受字符串或字符串数组。If ldapQueryPassword is set to an array, MongoDB tries each password in order until one succeeds. Use a password array to roll over the LDAP account password without downtime.如果ldapQueryPassword设置为数组,MongoDB会按顺序尝试每个密码,直到成功为止。使用密码数组在不停机的情况下滚动LDAP帐户密码。

Note

Windows MongoDB deployments can use --ldapBindWithOSDefaults instead of --ldapQueryUser and --ldapQueryPassword. Windows MongoDB部署可以使用--ldapBindWithOSDefaults,而不是--ldapQueryUser--ldapQueryPasswordYou cannot specify both --ldapQueryPassword and --ldapBindWithOSDefaults at the same time.不能同时指定--ldapQueryPassword--ldapBindWithOSDefaults

--ldapBindWithOSDefaults <bool>

Default: 默认值:false

Available in MongoDB Enterprise for the Windows platform only.仅适用于Windows平台的MongoDB企业版。

Allows mongod to authenticate, or bind, using your Windows login credentials when connecting to the LDAP server.允许mongod在连接到LDAP服务器时使用您的Windows登录凭据进行身份验证或绑定。

Only required if:仅在以下情况下需要:

Use --ldapBindWithOSDefaults to replace --ldapQueryUser and --ldapQueryPassword.使用--ldapBindWithOSDefaults替换--ldapQueryUser--ldapQueryPassword

--ldapBindMethod <string>

Default: 默认值:simple

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

The method mongod uses to authenticate to an LDAP server. Use with --ldapQueryUser and --ldapQueryPassword to connect to the LDAP server.mongod用于向LDAP服务器进行身份验证的方法。使用--ldapQueryUser--ldapQueryPassword连接到LDAP服务器。

--ldapBindMethod supports the following values:支持以下值:

  • simple - mongod uses simple authentication.使用简单的身份验证。
  • sasl - mongod uses SASL protocol for authentication使用SASL协议进行身份验证

If you specify sasl, you can configure the available SASL mechanisms using --ldapBindSaslMechanisms. mongod defaults to using DIGEST-MD5 mechanism.如果指定sasl,则可以使用--ldapBindSaslMechanisms配置可用的sasl机制。mongod默认使用DIGEST-MD5机制。

--ldapBindSaslMechanisms <string>

Default: 默认值:DIGEST-MD5

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

A comma-separated list of SASL mechanisms mongod can use when authenticating to the LDAP server. The mongod and the LDAP server must agree on at least one mechanism. mongod在向LDAP服务器进行身份验证时可以使用的SASL机制的逗号分隔列表。mongod和LDAP服务器必须就至少一种机制达成一致。The mongod dynamically loads any SASL mechanism libraries installed on the host machine at runtime.mongod在运行时动态加载安装在主机上的任何SASL机制库。

Install and configure the appropriate libraries for the selected SASL mechanism(s) on both the mongod host and the remote LDAP server host. Your operating system may include certain SASL libraries by default. Defer to the documentation associated with each SASL mechanism for guidance on installation and configuration.mongod主机和远程LDAP服务器主机上为所选SASL机制安装和配置适当的库。默认情况下,您的操作系统可能包含某些SASL库。有关安装和配置的指导,请参阅与每个SASL机制相关的文档。

If using the GSSAPI SASL mechanism for use with Kerberos Authentication on Self-Managed Deployments, verify the following for the mongod host machine:如果在自我管理部署上使用GSSAPI SASL机制与Kerberos身份验证一起使用,请为mongod主机验证以下内容:

Linux
  • The KRB5_CLIENT_KTNAME environment variable resolves to the name of the client Linux Keytab Files for the host machine. KRB5_CLIENT_KTNAME环境变量解析为主机的客户端Linux Keytab文件的名称。For more on Kerberos environment variables, please defer to the Kerberos documentation.有关Kerberos环境变量的更多信息,请参阅Kerberos文档
  • The client keytab includes a User Principal for the mongod to use when connecting to the LDAP server and execute LDAP queries.客户端keytab包含一个用户主体,供mongod在连接到LDAP服务器并执行LDAP查询时使用。
Windows
If connecting to an Active Directory server, the Windows Kerberos configuration automatically generates a Ticket-Granting-Ticket when the user logs onto the system. 如果连接到活动目录服务器,当用户登录系统时,Windows Kerberos配置会自动生成票证授予票证Set --ldapBindWithOSDefaults to true to allow mongod to use the generated credentials when connecting to the Active Directory server and execute queries.--ldapBindWithOSDefaults设置为true,以允许mongod在连接到活动目录服务器并执行查询时使用生成的凭据。

Set --ldapBindMethod to sasl to use this option.--ldapBindMethod设置为sasl以使用此选项。

Note

For a complete list of SASL mechanisms see the IANA listing. Defer to the documentation for your LDAP or Active Directory service for identifying the SASL mechanisms compatible with the service.有关SASL机制的完整列表,请参阅IANA列表。请参阅LDAP或活动目录服务的文档,以确定与该服务兼容的SASL机制。

MongoDB is not a source of SASL mechanism libraries, nor is the MongoDB documentation a definitive source for installing or configuring any given SASL mechanism. For documentation and support, defer to the SASL mechanism library vendor or owner.MongoDB不是SASL机制库的来源,MongoDB文档也不是安装或配置任何给定SASL机制的权威来源。有关文档和支持,请咨询SASL机制库供应商或所有者。

For more information on SASL, defer to the following resources:有关SASL的更多信息,请参阅以下资源:

--ldapTransportSecurity <string>

Default: 默认值:tls

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

By default, mongod creates a TLS/SSL secured connection to the LDAP server.默认情况下,mongod会创建到LDAP服务器的TLS/SSL安全连接。

For Linux deployments, you must configure the appropriate TLS Options in /etc/openldap/ldap.conf file. 对于Linux部署,您必须在/etc/openldap/ldap.conf文件中配置相应的TLS选项。Your operating system's package manager creates this file as part of the MongoDB Enterprise installation, via the libldap dependency. 操作系统的包管理器通过libldap依赖关系创建此文件,作为MongoDB Enterprise安装的一部分。See the documentation for TLS Options in the ldap.conf OpenLDAP documentation for more complete instructions.有关更完整的说明,请参阅ldap.conf OpenLDAP文档中的TLS选项文档。

For Windows deployment, you must add the LDAP server CA certificates to the Windows certificate management tool. The exact name and functionality of the tool may vary depending on operating system version. Please see the documentation for your version of Windows for more information on certificate management.对于Windows部署,必须将LDAP服务器CA证书添加到Windows证书管理工具中。该工具的确切名称和功能可能因操作系统版本而异。有关证书管理的详细信息,请参阅Windows版本的文档。

Set --ldapTransportSecurity to none to disable TLS/SSL between mongod and the LDAP server.--ldapTransportSecurity设置为none以禁用mongod和LDAP服务器之间的TLS/SSL。

Warning

Setting --ldapTransportSecurity to none transmits plaintext information and possibly credentials between mongod and the LDAP server.--ldapTransportSecurity设置为none会在mongod和LDAP服务器之间传输明文信息和可能的凭据。

--ldapTimeoutMS <int>

Default: 默认值:10000

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

The amount of time in milliseconds mongod should wait for an LDAP server to respond to a request.mongod应等待LDAP服务器响应请求的时间量(毫秒)。

Increasing the value of --ldapTimeoutMS may prevent connection failure between the MongoDB server and the LDAP server, if the source of the failure is a connection timeout. 如果故障源是连接超时,则增加--ldapTimeoutMS的值可以防止MongoDB服务器和LDAP服务器之间的连接失败。Decreasing the value of --ldapTimeoutMS reduces the time MongoDB waits for a response from the LDAP server.减小--ldapTimeoutMS的值可以减少MongoDB等待LDAP服务器响应的时间。

This setting can be configured on a running mongod using setParameter.可以使用setParameter在正在运行的mongod上配置此设置。

--ldapRetryCount <int>

New in version 6.1.在版本6.1中新增。

Default: 默认值:0

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

Number of operation retries by the server LDAP manager after a network error.网络错误后服务器LDAP管理器重试操作的次数。

--ldapUserToDNMapping <string>

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

Maps the username provided to mongod for authentication to a LDAP Distinguished Name (DN). You may need to use --ldapUserToDNMapping to transform a username into an LDAP DN in the following scenarios:将提供给mongod进行身份验证的用户名映射到LDAP可分辨名称(DN)。在以下情况下,您可能需要使用--ldapUserToDNMapping将用户名转换为LDAP DN:

  • Performing LDAP authentication with simple LDAP binding, where users authenticate to MongoDB with usernames that are not full LDAP DNs.使用简单的LDAP绑定执行LDAP身份验证,其中用户使用非完整LDAP DN的用户名向MongoDB进行身份验证。
  • Using an LDAP authorization query template that requires a DN.使用需要DN的LDAP授权查询模板
  • Transforming the usernames of clients authenticating to Mongo DB using different authentication mechanisms, such as x.509 or kerberos, to a full LDAP DN for authorization.将使用不同身份验证机制(如x.509或kerberos)对Mongo DB进行身份验证的客户端的用户名转换为完整的LDAP DN进行授权。

--ldapUserToDNMapping expects a quote-enclosed JSON-string representing an ordered array of documents. 需要一个引号括起来的JSON字符串,表示一个有序的文档数组。Each document contains a regular expression match and either a substitution or ldapQuery template used for transforming the incoming username.每个文档都包含一个正则表达式match,以及用于转换传入用户名的substitutionldapQuery模板。

Each document in the array has the following form:数组中的每个文档都有以下形式:

{
match: "<regex>"
substitution: "<LDAP DN>" | ldapQuery: "<LDAP Query>"
}
Field字段Description描述Example
matchAn ECMAScript-formatted regular expression (regex) to match against a provided username. Each parenthesis-enclosed section represents a regex capture group used by substitution or ldapQuery.与提供的用户名匹配的ECMAScript格式的正则表达式(regex)。每个括号括起来的部分表示substitutionldapQuery使用的正则表达式捕获组。

"(.+)ENGINEERING" "(.+)DBA"

substitution

An LDAP distinguished name (DN) formatting template that converts the authentication name matched by the match regex into a LDAP DN. LDAP可分辨名称(DN)格式模板,用于将match正则表达式匹配的身份验证名称转换为LDAP DN。Each curly bracket-enclosed numeric value is replaced by the corresponding regex capture group extracted from the authentication username via the match regex.每个用花括号括起来的数值都被通过match正则表达式从身份验证用户名中提取的相应正则表达式捕获组所替换。

The result of the substitution must be an RFC4514 escaped string.替换的结果必须是RFC4514转义字符串。

"cn={0},ou=engineering, dc=example,dc=com"
ldapQueryA LDAP query formatting template that inserts the authentication name matched by the match regex into an LDAP query URI encoded respecting RFC4515 and RFC4516. LDAP查询格式化模板,将匹配正则表达式匹配的身份验证名称插入到根据RFC4515和RFC4516编码的LDAP查询URI中。Each curly bracket-enclosed numeric value is replaced by the corresponding regex capture group extracted from the authentication username via the match expression. mongod executes the query against the LDAP server to retrieve the LDAP DN for the authenticated user. 每个用花括号括起来的数值都被通过match表达式从身份验证用户名中提取的相应正则表达式捕获组所替换。mongod对LDAP服务器执行查询,以检索经过身份验证的用户的LDAP DN。mongod requires exactly one returned result for the transformation to be successful, or mongod skips this transformation.mongod需要一个返回的结果才能成功转换,或者mongod跳过此转换。"ou=engineering,dc=example, dc=com??one?(user={0})"

Note

An explanation of RFC4514, RFC4515, RFC4516, or LDAP queries is out of scope for the MongoDB Documentation. Please review the RFC directly or use your preferred LDAP resource.RFC4514RFC4515RFC4516或LDAP查询的解释超出了MongoDB文档的范围。请直接查看RFC或使用您首选的LDAP资源。

For each document in the array, you must use either substitution or ldapQuery. You cannot specify both in the same document.对于数组中的每个文档,必须使用substitutionldapQuery。不能在同一文档中同时指定两者。

When performing authentication or authorization, mongod steps through each document in the array in the given order, checking the authentication username against the match filter. 执行身份验证或授权时,mongod会按照给定的顺序遍历数组中的每个文档,根据匹配筛选器检查身份验证用户名。 If a match is found, mongod applies the transformation and uses the output for authenticating the user. mongod does not check the remaining documents in the array.如果找到匹配项,mongod将应用转换并使用输出对用户进行身份验证。mongod不会检查数组中的其余文档。

If the given document does not match the provided authentication name, mongod continues through the list of documents to find additional matches. If no matches are found in any document, or the transformation the document describes fails, mongod returns an error.如果给定的文档与提供的身份验证名称不匹配,mongod将继续浏览文档列表以查找其他匹配项。如果在任何文档中都找不到匹配项,或者文档描述的转换失败,mongod将返回错误。

mongod also returns an error if one of the transformations cannot be evaluated due to networking or authentication failures to the LDAP server. mongod rejects the connection request and does not check the remaining documents in the array.如果由于LDAP服务器的网络或身份验证失败而无法评估其中一个转换,mongod也会返回错误。mongod拒绝了连接请求,并且不检查数组中的剩余文档。

Starting in MongoDB 5.0, --ldapUserToDNMapping accepts an empty string "" or empty array [ ] in place of a mapping documnent. 从MongoDB 5.0开始,--ldapUserToDNMapping接受空字符串""或空数组[]来代替映射文档。If providing an empty string or empty array to --ldapUserToDNMapping, MongoDB maps the authenticated username as the LDAP DN. In earlier versions, providing an empty mapping document causes mapping to fail.如果向--ldapUserToDNMapping提供空字符串或空数组,MongoDB会将经过身份验证的用户名映射为LDAP DN。在早期版本中,提供空映射文档会导致映射失败。

Example示例

The following shows two transformation documents. The first document matches against any string ending in @ENGINEERING, placing anything preceeding the suffix into a regex capture group. The second document matches against any string ending in @DBA, placing anything preceeding the suffix into a regex capture group.下面显示了两个转换文档。第一个文档与任何以@ENGINEERING结尾的字符串匹配,将后缀之前的任何内容放入正则表达式捕获组中。第二个文档与任何以@DBA结尾的字符串匹配,将后缀之前的任何内容放入正则表达式捕获组中。

Important

You must pass the array to --ldapUserToDNMapping as a string.您必须将数组作为字符串传递给--ldapUserToDNMapping。

"[
{
match: "(.+)@ENGINEERING.EXAMPLE.COM",
substitution: "cn={0},ou=engineering,dc=example,dc=com"
},
{
match: "(.+)@DBA.EXAMPLE.COM",
ldapQuery: "ou=dba,dc=example,dc=com??one?(user={0})"

}

]"

A user with username alice@ENGINEERING.EXAMPLE.COM matches the first document. 用户名为的用户alice@ENGINEERING.EXAMPLE.COM匹配第一个文档。The regex capture group {0} corresponds to the string alice. The resulting output is the DN "cn=alice,ou=engineering,dc=example,dc=com".正则表达式捕获组{0}对应于字符串alice。结果输出是DN"cn=alice,ou=engineering,dc=example,dc=com"

A user with username bob@DBA.EXAMPLE.COM matches the second document. The regex capture group {0} corresponds to the string bob. The resulting output is the LDAP query "ou=dba,dc=example,dc=com??one?(user=bob)". mongod executes this query against the LDAP server, returning the result "cn=bob,ou=dba,dc=example,dc=com".

If --ldapUserToDNMapping is unset, mongod applies no transformations to the username when attempting to authenticate or authorize a user against the LDAP server.

This setting can be configured on a running mongod using the setParameter database command.

--ldapAuthzQueryTemplate <string>

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

A relative LDAP query URL formatted conforming to RFC4515 and RFC4516 that mongod executes to obtain the LDAP groups to which the authenticated user belongs to. The query is relative to the host or hosts specified in --ldapServers.

In the URL, you can use the following substituion tokens:在URL中,您可以使用以下替换标记:

Substitution Token替换令牌Description描述
{USER}Substitutes the authenticated username, or the transformed username if a username mapping is specified.
{PROVIDED_USER}Substitutes the supplied username, i.e. before either authentication or LDAP transformation.

When constructing the query URL, ensure that the order of LDAP parameters respects RFC4516:构造查询URL时,请确保LDAP参数的顺序符合RFC4516:

[ dn  [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ]

If your query includes an attribute, mongod assumes that the query retrieves a the DNs which this entity is member of.如果您的查询包含属性,mongod会假定该查询检索此实体所属的DN。

If your query does not include an attribute, mongod assumes the query retrieves all entities which the user is member of.如果您的查询不包含属性,mongod会假设查询检索用户所属的所有实体。

For each LDAP DN returned by the query, mongod assigns the authorized user a corresponding role on the admin database. 对于查询返回的每个LDAP DN,mongodadmin数据库上为授权用户分配一个相应的角色。If a role on the on the admin database exactly matches the DN, mongod grants the user the roles and privileges assigned to that role. 如果admin数据库上的角色与DN完全匹配,mongod将授予用户分配给该角色的角色和权限。See the db.createRole() method for more information on creating roles.有关创建角色的更多信息,请参阅db.createRole()方法。

Example示例

This LDAP query returns any groups listed in the LDAP user object's memberOf attribute.此LDAP查询返回LDAP用户对象的memberOf属性中列出的任何组。

"{USER}?memberOf?base"

Your LDAP configuration may not include the memberOf attribute as part of the user schema, may possess a different attribute for reporting group membership, or may not track group membership through attributes. Configure your query with respect to your own unique LDAP configuration.LDAP配置可能不包括memberOf属性作为用户架构的一部分,可能具有用于报告组成员资格的不同属性,或者可能不通过属性跟踪组成员资格。根据您自己的唯一LDAP配置配置您的查询。

If unset, mongod cannot authorize users using LDAP.如果未设置,mongod将无法使用LDAP授权用户。

This setting can be configured on a running mongod using the setParameter database command.

Note

An explanation of RFC4515, RFC4516 or LDAP queries is out of scope for the MongoDB Documentation. Please review the RFC directly or use your preferred LDAP resource.RFC4515RFC4516或LDAP查询的解释超出了MongoDB文档的范围。请直接查看RFC或使用您首选的LDAP资源。

Storage Options存储选项

--storageEngine string

Default: 默认值:wiredTiger

Specifies the storage engine for the mongod database. Available values include:指定mongod数据库的存储引擎。可用值包括:

ValueDescription描述
wiredTigerTo specify the WiredTiger Storage Engine.指定WiredTiger存储引擎
inMemory

To specify the In-Memory Storage Engine for Self-Managed Deployments.自我管理部署指定内存中存储引擎。

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

If you attempt to start a mongod with a --dbpath that contains data files produced by a storage engine other than the one specified by --storageEngine, mongod doesn't start.

--dbpath <path>

Default: 默认值:/data/db on Linux and macOS, \data\db on Windows

The directory where the mongod instance stores its data.

If using the default Configuration File included with a package manager installation of MongoDB, the corresponding storage.dbPath setting uses a different default.

The files in --dbpath must correspond to the storage engine specified in --storageEngine. If the data files do not correspond to --storageEngine, mongod doesn't start.

--directoryperdb

Uses a separate directory to store data for each database. The directories are under the --dbpath directory, and each subdirectory name corresponds to the database name.使用单独的目录存储每个数据库的数据。这些目录位于--dbpath目录下,每个子目录名称都对应于数据库名称。

Not available for mongod instances that use the in-memory storage engine.不适用于使用内存存储引擎的mongod实例。

Starting in MongoDB 5.0, dropping the final collection in a database (or dropping the database itself) when --directoryperdb is enabled deletes the newly empty subdirectory for that database.

To change the --directoryperdb option for existing deployments:要更改现有部署的--directoryperdb选项,请执行以下操作:

  • For standalone instances:对于独立实例:

    1. Use mongodump on the existing mongod instance to generate a backup.
    2. Stop the mongod instance.停止mongod实例。
    3. Add the --directoryperdb value and configure a new data directory
    4. Restart the mongod instance.
    5. Use mongorestore to populate the new data directory.
  • For replica sets:对于副本集:

    1. Stop a secondary member.阻止次要成员。
    2. Add the --directoryperdb value and configure a new data directory to that secondary member.添加--directoryperdb值,并为该次要成员配置一个新的数据目录。
    3. Restart that secondary.重新启动该辅助设备。
    4. Use initial sync to populate the new data directory.使用初始同步填充新数据目录。
    5. Update remaining secondaries in the same fashion.以相同的方式更新剩余的secondary。
    6. Step down the primary, and update the stepped-down member in the same fashion.降级primary,并以相同的方式更新降级成员。
--syncdelay <value>

Default: 默认值:60

Controls how much time can pass before MongoDB flushes data to the data files.控制MongoDB将数据刷新到数据文件之前可以经过多长时间。

Do not set this value on production systems.不要在生产系统上设置此值。 In almost every situation, you should use the default setting.在几乎所有情况下,您都应该使用默认设置。

The mongod process writes data very quickly to the journal and lazily to the data files. mongod进程将数据非常快速地写入日志,并缓慢地写入数据文件。--syncdelay has no effect on journaling, but if --syncdelay is set to 0 the journal eventually consumes all available disk space.

Not available for mongod instances that use the in-memory storage engine.

To provide durable data, WiredTiger uses checkpoints. For more details, see Journaling and the WiredTiger Storage Engine.

--upgrade

Upgrades the on-disk data format of the files specified by the --dbpath to the latest version, if needed.如果需要,将--dbpath指定的文件的磁盘数据格式升级到最新版本。

This option only affects the operation of the mongod if the data files are in an old format.此选项仅在数据文件为旧格式时影响mongod的操作。

In most cases you should not set this value, so you can exercise the most control over your upgrade process. See the MongoDB release notes for more information about the upgrade process.在大多数情况下,您不应该设置此值,这样您就可以对升级过程进行最大程度的控制。有关升级过程的更多信息,请参阅MongoDB发行说明。

--repair

Runs a repair routine on all databases for a mongod instance.mongod实例的所有数据库运行修复例程。

Starting in MongoDB 5.0:从MongoDB 5.0开始:

  • The repair operation validates the collections to find any inconsistencies and fixes them if possible, which avoids rebuilding the indexes.修复操作验证集合以查找任何不一致,并在可能的情况下修复它们,从而避免重建索引。
  • If a collection's data file is salvaged or if the collection has inconsistencies that the validate step is unable to fix, then all indexes are rebuilt.如果回收了集合的数据文件,或者如果集合存在验证步骤无法修复的不一致,则重建所有索引。

Tip

If you are running with journaling enabled, there is almost never any need to run repair since the server can use the journal files to restore the data files to a clean state automatically. However, you may need to run repair in cases where you need to recover from a disk-level data corruption.如果您在启用日志记录的情况下运行,则几乎不需要运行修复,因为服务器可以使用日志文件自动将数据文件还原到干净状态。但是,在需要从磁盘级数据损坏中恢复的情况下,您可能需要运行修复。

Warning

  • Only use mongod --repair if you have no other options. The operation removes and does not save any corrupt data during the repair process.只有在没有其他选择的情况下才使用mongod --repair。该操作在修复过程中删除且不保存任何损坏的数据。
  • Avoid running --repair against a replica set member:避免对副本集成员运行--repair

    • To repair a replica set member, if you have an intact copy of your data available (e.g. a recent backup or an intact member of the replica set), restore from that intact copy instead. To learn more, see Resync a Member of a Self-Managed Replica Set.
    • If you choose to run mongod --repair against a replica set member and the operation modifies the data or the metadata, you must still perform a full resync in order for the member to rejoin the replica set.
  • Before using --repair, make a backup copy of the dbpath directory.在使用--repair之前,请备份dbpath目录。
  • If repair fails to complete for any reason, you must restart the instance using the --repair option.如果修复因任何原因未能完成,则必须使用--repair选项重新启动实例。
--journalCommitInterval <value>

Default: 默认值:100

The maximum amount of time in milliseconds that the mongod process allows between journal operations. Values can range from 1 to 500 milliseconds. Lower values increase the durability of the journal, at the expense of disk performance.mongod进程在日志操作之间允许的最大时间量(毫秒)。值的范围为1到500毫秒。较低的值会提高日志的耐用性,但会牺牲磁盘性能。

On WiredTiger, the default journal commit interval is 100 milliseconds. 在WiredTiger上,默认日志提交间隔为100毫秒。A write that includes or implies j:true causes an immediate sync of the journal. 包含或暗示j:true的写入会立即同步日志。For details and additional conditions that affect the frequency of the sync, see Journaling Process.有关影响同步频率的详细信息和其他条件,请参阅日志处理

Not available for mongod instances that use the in-memory storage engine.

WiredTiger OptionsWiredTiger选项

--wiredTigerCacheSizeGB <float>

Defines the maximum size of the internal cache that WiredTiger uses for all data. The memory consumed by an index build (see maxIndexBuildMemoryUsageMegabytes) is separate from the WiredTiger cache memory.定义WiredTiger用于所有数据的内部缓存的最大大小。索引构建所消耗的内存(请参阅maxIndexBuildMemoryUsageMegabytes)与WiredTiger缓存内存是分开的。

Avoid increasing the WiredTiger internal cache size above its default value. If your use case requires to do so, you can use --wiredTigerCacheSizePct to specify a percentage of up to 80% of available memory. Values can range from 0.25 GB to 10000 GB.避免将WiredTiger内部缓存大小增加到默认值以上。如果用例需要这样做,您可以使用--wiredTigerCacheSizePct指定高达80%的可用内存百分比。值的范围可以从0.25 GB到10000 GB。

The default WiredTiger internal cache size is the larger of either:默认的WiredTiger内部缓存大小是以下两者中的较大值:

  • 50% of (RAM - 1 GB), or
  • 256 MB.

For example, on a system with a total of 4GB of RAM the WiredTiger cache uses 1.5GB of RAM (0.5 * (4 GB - 1 GB) = 1.5 GB). Conversely, on a system with a total of 1.25 GB of RAM WiredTiger allocates 256 MB to the WiredTiger cache because that is more than half of the total RAM minus one gigabyte (0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB).

Note

In some instances, such as when running in a container, the database can have memory constraints that are lower than the total system memory. In such instances, this memory limit, rather than the total system memory, is used as the maximum RAM available.在某些情况下,例如在容器中运行时,数据库的内存限制可能低于总系统内存。在这种情况下,这个内存限制,而不是整个系统内存,被用作可用的最大RAM。

To see the memory limit, see hostInfo.system.memLimitMB.要查看内存限制,请参阅hostInfo.system.memLimitMB

With WiredTiger, MongoDB utilizes both the WiredTiger internal cache and the filesystem cache.使用WiredTiger,MongoDB同时利用WiredTigeer内部缓存和文件系统缓存。

With the filesystem cache, MongoDB automatically uses all free memory that is not used by the WiredTiger cache or by other processes.使用文件系统缓存,MongoDB会自动使用WiredTiger缓存或其他进程未使用的所有空闲内存。

Note

The --wiredTigerCacheSizeGB limits the size of the WiredTiger internal cache. --wiredTigerCacheSizeGB限制了WiredTiger内部缓存的大小。The operating system uses the available free memory for filesystem cache, which allows the compressed MongoDB data files to stay in memory. In addition, the operating system uses any free RAM to buffer file system blocks and file system cache.操作系统使用可用的空闲内存进行文件系统缓存,这允许压缩的MongoDB数据文件留在内存中。此外,操作系统使用任何空闲RAM来缓冲文件系统块和文件系统缓存。

To accommodate the additional consumers of RAM, you may have to decrease WiredTiger internal cache size.为了容纳额外的RAM用户,您可能需要减小WiredTiger内部缓存大小。

The default WiredTiger internal cache size value assumes that there is a single mongod instance per machine. 默认的WiredTiger内部缓存大小值假定每台机器只有一个mongod实例。If a single machine contains multiple MongoDB instances, decrease the setting to accommodate the other mongod instances.如果一台机器包含多个MongoDB实例,请减小设置以容纳其他MongoDB实例。

If you run mongod in a container (for example, lxc, cgroups, Docker, etc.) that does not have access to all of the RAM available in a system, you must set --wiredTigerCacheSizeGB to a value less than the amount of RAM available in the container. The exact amount depends on the other processes running in the container. See memLimitMB.

You can only provide one of either --wiredTigerCacheSizeGB or --wiredTigerCacheSizePct.您只能提供--wiredTigerCacheSizeGB--wiredTigerCacheSizePct中的一个。

--wiredTigerCacheSizePct <float>

Defines the maximum amount of memory to allocate for cache as a percentage of physical RAM. The memory that an index build consumes (see maxIndexBuildMemoryUsageMegabytes) is separate from the WiredTiger cache memory.将分配给缓存的最大内存量定义为物理RAM的百分比。索引构建消耗的内存(请参阅maxIndexBuildMemoryUsageMegabytes)与WiredTiger缓存内存是分开的。

You can specify a percentage of up to 80% of available memory. Values range from 0.25 GB to 10000 GB.您可以指定最多80%的可用内存百分比。值的范围为0.25 GB到10000 GB。

The default WiredTiger internal cache size is the larger of either:默认的WiredTiger内部缓存大小是以下两者中的较大值:

  • 50% of (RAM - 1 GB), or
  • 256 MB.

For example, on a system with a total of 4GB of RAM the WiredTiger cache uses 1.5GB of RAM (0.5 * (4 GB - 1 GB) = 1.5 GB). 例如,在总共有4GB RAM的系统上,WiredTiger缓存使用0.5 * (4 GB - 1 GB) = 1.5 GBConversely, on a system with a total of 1.25 GB of RAM WiredTiger allocates 256 MB to the WiredTiger cache because that is more than half of the total RAM minus one gigabyte (0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB).相反,在总共有1.25 GB RAM的系统上,WiredTiger将256 MB分配给WiredTigeer缓存,因为这超过了总RAM减去1 GB的一半(0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB)。

Note

In some instances, such as when running in a container, the database can have memory constraints that are lower than the total system memory. In such instances, this memory limit, rather than the total system memory, is used as the maximum RAM available.在某些情况下,例如在容器中运行时,数据库的内存限制可能低于总系统内存。在这种情况下,这个内存限制,而不是整个系统内存,被用作可用的最大RAM。

To see the memory limit, see hostInfo.system.memLimitMB.要查看内存限制,请参阅hostInfo.system.memLimitMB

With WiredTiger, MongoDB utilizes both the WiredTiger internal cache and the filesystem cache.使用WiredTiger,MongoDB同时利用WiredTigeer内部缓存和文件系统缓存。

With the filesystem cache, MongoDB automatically uses all free memory that is not used by the WiredTiger cache or by other processes.使用文件系统缓存,MongoDB会自动使用WiredTiger缓存或其他进程未使用的所有空闲内存。

Note

The --wiredTigerCacheSizePct limits the size of the WiredTiger internal cache. The operating system uses the available free memory for filesystem cache, which allows the compressed MongoDB data files to stay in memory. In addition, the operating system uses any free RAM to buffer file system blocks and file system cache.--wiredTigerCacheSizePct限制了WiredTiger内部缓存的大小。操作系统使用可用的空闲内存进行文件系统缓存,这允许压缩的MongoDB数据文件留在内存中。此外,操作系统使用任何空闲RAM来缓冲文件系统块和文件系统缓存。

To accommodate the additional consumers of RAM, you may have to decrease WiredTiger internal cache size.为了容纳额外的RAM用户,您可能需要减小WiredTiger内部缓存大小。

The default WiredTiger internal cache size value assumes that there is a single mongod instance per machine. If a single machine contains multiple MongoDB instances, decrease the setting to accommodate the other mongod instances.默认的WiredTiger内部缓存大小值假定每台机器只有一个mongod实例。如果一台机器包含多个MongoDB实例,请减小设置以容纳其他MongoDB实例。

If you run mongod in a container (for example, lxc, cgroups, Docker, etc.) that does not have access to all of the RAM available in a system, you must set --wiredTigerCacheSizePct to a value less than the amount of RAM available in the container. 如果在无法访问系统中所有可用RAM的容器(例如lxccgroups、Docker等)中运行mongod,则必须将--wiredTigerCacheSizePct设置为小于容器中可用RAM量的值。The exact amount depends on the other processes running in the container. See memLimitMB.确切的数量取决于容器中运行的其他进程。请参阅memLimitMB

You can only provide one of either --wiredTigerCacheSizePct or --wiredTigerCacheSizeGB.您只能提供--wiredTigerCacheSizePct--wiredTigerCacheSizeGB中的一个。

--wiredTigerJournalCompressor <compressor>

Default: 默认值:snappy

Specifies the type of compression to use to compress WiredTiger journal data.指定用于压缩WiredTiger日志数据的压缩类型。

Available compressors are:可用的压缩机有:

--wiredTigerDirectoryForIndexes

When you start mongod with --wiredTigerDirectoryForIndexes, mongod stores indexes and collections in separate subdirectories under the data (i.e. --dbpath) directory. Specifically, mongod stores the indexes in a subdirectory named index and the collection data in a subdirectory named collection.

By using a symbolic link, you can specify a different location for the indexes. Specifically, when mongod instance is not running, move the index subdirectory to the destination and create a symbolic link named index under the data directory to the new destination.

--wiredTigerCollectionBlockCompressor <compressor>

Default: 默认值:snappy

Specifies the default compression for collection data. You can override this on a per-collection basis when creating collections.指定集合数据的默认压缩。在创建集合时,您可以在每个集合的基础上覆盖此设置。

Available compressors are:可用的压缩机有:

--wiredTigerCollectionBlockCompressor affects all collections created. If you change the value of --wiredTigerCollectionBlockCompressor on an existing MongoDB deployment, all new collections use the specified compressor. Existing collections continue to use the compressor specified when they were created, or the default compressor at that time.

--wiredTigerIndexPrefixCompression <boolean>

Default: 默认值:true

Enables or disables prefix compression for index data.

Specify true for --wiredTigerIndexPrefixCompression to enable prefix compression for index data, or false to disable prefix compression for index data.

The --wiredTigerIndexPrefixCompression setting affects all indexes created. If you change the value of --wiredTigerIndexPrefixCompression on an existing MongoDB deployment, all new indexes use prefix compression. Existing indexes are not affected.

Replication Options复制选项

--replSet <setname>

Configures replication. Specify a replica set name as an argument to this set. All hosts in the replica set must have the same set name.配置复制。指定副本集名称作为此集的参数。副本集中的所有主机必须具有相同的集名称。

If your application connects to more than one replica set, each set must have a distinct name. Some drivers group replica set connections by replica set name.如果应用程序连接到多个副本集,则每个副本集必须具有不同的名称。某些驱动程序按副本集名称对副本集连接进行分组。

--oplogSize <value>

The maximum size in megabytes for the oplog. The oplogSize setting configures the uncompressed size of the oplog, not the size on disk.

Note

The oplog can grow past its configured size limit to avoid deleting the majority commit point.oplog可以超过其配置的大小限制,以避免删除多数提交点

By default, the mongod process creates an oplog based on the maximum amount of space available. For 64-bit systems, the oplog is typically 5% of available disk space.默认情况下,mongod进程会根据最大可用空间量创建oplog。对于64位系统,oplog通常占可用磁盘空间的5%。

Once the mongod has created the oplog for the first time, changing the --oplogSize option doesn't affect the size of the oplog. To change the minimum oplog retention period after starting the mongod, use replSetResizeOplog. replSetResizeOplog enables you to resize the oplog dynamically without restarting the mongod process. To persist the changes made using replSetResizeOplog through a restart, update the value of --oplogSize.

See Oplog Size for more information.有关更多信息,请参阅操作日志大小

--oplogMinRetentionHours <value>

Specifies the minimum number of hours to preserve an oplog entry, where the decimal values represent the fractions of an hour. For example, a value of 1.5 represents one hour and thirty minutes.指定保留oplog条目的最小小时数,其中十进制值表示小时的分数。例如,值1.5表示一小时三十分钟。

The value must be greater than or equal to 0. A value of 0 indicates that the mongod should truncate the oplog starting with the oldest entries to maintain the configured maximum oplog size.该值必须大于或等于0。值为0表示mongod应该从最旧的条目开始截断oplog,以保持配置的最大oplog大小。

Defaults to 0.默认为0

A mongod started with --oplogMinRetentionHours only removes an oplog entry if:--oplogMinRetentionHours开头的mongod仅在以下情况下删除oplog条目:

  • The oplog has reached the maximum configured oplog size andoplog已达到配置的最大oplog大小
  • The oplog entry is older than the configured number of hours based on the host system clock.oplog条目比基于主机系统时钟配置的小时数旧。

The mongod has the following behavior when configured with a minimum oplog retention period:当配置了最小oplog保留期时,mongod具有以下行为:

  • The oplog can grow without constraint so as to retain oplog entries for the configured number of hours. This may result in reduction or exhaustion of system disk space due to a combination of high write volume and large retention period.oplog可以无约束地增长,以便在配置的小时数内保留oplog条目。由于写入量大和保留期长,这可能会导致系统磁盘空间减少或耗尽。
  • If the oplog grows beyond its maximum size, the mongod may continue to hold that disk space even if the oplog returns to its maximum size or is configured for a smaller maximum size. 如果oplog增长超过其最大大小,即使oplog恢复到最大大小或配置为较小的最大大小,mongod也可能继续保留该磁盘空间。See Reducing Oplog Size Does Not Immediately Return Disk Space.请参阅减小操作日志大小不会立即返回磁盘空间
  • The mongod compares the system wall clock to an oplog entries creation wall clock time when enforcing oplog entry retention. 在执行oplog条目保留时,mongod将系统时钟与oplog条目创建时钟进行比较。Clock drift between cluster components may result in unexpected oplog retention behavior. 集群组件之间的时钟漂移可能会导致意外的oplog保留行为。See Clock Synchronization for more information on clock synchronization across cluster members.有关跨群集成员的时钟同步的更多信息,请参阅时钟同步

To change the minimum oplog retention period after starting the mongod, use replSetResizeOplog. replSetResizeOplog enables you to resize the oplog dynamically without restarting the mongod process. To persist the changes made using replSetResizeOplog through a restart, update the value of --oplogMinRetentionHours.

--enableMajorityReadConcern

Default: 默认值:true

Configures support for "majority" read concern.配置对"majority"读取关注的支持。

Starting in MongoDB 5.0, --enableMajorityReadConcern cannot be changed and is always set to true. In earlier versions of MongoDB, --enableMajorityReadConcern was configurable.

Warning

If you are using a three-member primary-secondary-arbiter (PSA) architecture, consider the following:如果您使用的是三成员主从仲裁器(PSA)架构,请考虑以下内容:

Sharded Cluster Options分片集群选项

--configsvr

Required if starting a config server.启动配置服务器时需要。

Declares that this mongod instance serves as the config server of a sharded cluster. When running with this option, clients (i.e. other cluster components) cannot write data to any database other than config and admin. The default port for a mongod with this option is 27019 and the default --dbpath directory is /data/configdb, unless specified.

Important

When starting a MongoDB server with --configsvr, you must also specify a --replSet.

The use of the deprecated mirrored mongod instances as config servers (SCCC) is no longer supported.

The replica set config servers (CSRS) must run the WiredTiger storage engine.

The --configsvr option creates a local oplog.

Do not use the --configsvr option with --shardsvr. Config servers cannot be a shard server.

Do not use the --configsvr with the skipShardingConfigurationChecks parameter. That is, if you are temporarily starting the mongod as a standalone for maintenance operations, include the parameter skipShardingConfigurationChecks and exclude --configsvr. Once maintenance has completed, remove the skipShardingConfigurationChecks parameter and restart with --configsvr.

--shardsvr

Required if starting a shard server.

Configures this mongod instance as a shard in a sharded cluster. The default port for these instances is 27018.将此mongod实例配置为分片集群中的分片。这些实例的默认端口为27018

Important

When starting a MongoDB server with --shardsvr, you must also specify a --replSet.

Do not use the --shardsvr with the skipShardingConfigurationChecks parameter. That is, if you are temporarily starting the mongod as a standalone for maintenance operations, include the parameter skipShardingConfigurationChecks and exclude --shardsvr. Once maintenance has completed, remove the skipShardingConfigurationChecks parameter and restart with --shardsvr.

TLS Options

Tip

See:

Configure mongod and mongos for TLS/SSL on Self-Managed Deployments for full documentation of MongoDB's support.

--tlsMode <mode>

Enables TLS used for all network connections. The argument to the --tlsMode option can be one of the following:

ValueDescription描述
disabledThe server does not use TLS.服务器不使用TLS。
allowTLSConnections between servers do not use TLS. For incoming connections, the server accepts both TLS and non-TLS.服务器之间的连接不使用TLS。对于传入连接,服务器接受TLS和非TLS。
preferTLSConnections between servers use TLS. For incoming connections, the server accepts both TLS and non-TLS.服务器之间的连接使用TLS。对于传入连接,服务器接受TLS和非TLS。
requireTLSThe server uses and accepts only TLS encrypted connections.服务器仅使用并接受TLS加密的连接。

If --tlsCAFile or tls.CAFile is not specified and you are not using X.509 authentication, you must set the tlsUseSystemCA parameter to true. This makes MongoDB use the system-wide CA certificate store when connecting to a TLS-enabled server.

If using X.509 authentication, --tlsCAFile or tls.CAFile must be specified unless using --tlsCertificateSelector.

For more information about TLS and MongoDB, see Configure mongod and mongos for TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .

--tlsCertificateKeyFile <filename>

Specifies the .pem file that contains both the TLS certificate and key.

On macOS or Windows, you can use the --tlsCertificateSelector option to specify a certificate from the operating system's secure certificate store instead of a PEM key file. 在macOS或Windows上,您可以使用--tlsCertificateSelector选项从操作系统的安全证书存储中指定证书,而不是PEM键文件。--tlsCertificateKeyFile and --tlsCertificateSelector options are mutually exclusive. You can only specify one.选择是相互排斥的。您只能指定一个。

For more information about TLS and MongoDB, see Configure mongod and mongos for TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .

--tlsCertificateKeyFilePassword <value>

Specifies the password to decrypt the certificate-key file (i.e. --tlsCertificateKeyFile). Use the --tlsCertificateKeyFilePassword option only if the certificate-key file is encrypted. In all cases, the mongod redacts the password from all logging and reporting output.

For more information about TLS and MongoDB, see Configure mongod and mongos for TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .

--clusterAuthMode <option>

Default: 默认值:keyFile

The authentication mode used for cluster authentication. If you use internal X.509 authentication, specify so here. This option can have one of the following values:用于群集身份验证的身份验证模式。如果您使用内部X.509身份验证,请在此处指定。此选项可以具有以下值之一:

ValueDescription描述
keyFileUse a keyfile for authentication. Accept only keyfiles.使用键文件进行身份验证。仅接受键文件。
sendKeyFileFor rolling upgrade purposes. Send a keyfile for authentication but can accept both keyfiles and X.509 certificates.用于滚动升级目的。发送键文件进行身份验证,但可以接受键文件和X.509证书。
sendX509For rolling upgrade purposes. Send the X.509 certificate for authentication but can accept both keyfiles and X.509 certificates.用于滚动升级目的。发送X.509证书进行身份验证,但可以接受键文件和X.509证书。
x509Recommended. Send the X.509 certificate for authentication and accept only X.509 certificates.推荐。发送X.509证书进行身份验证,只接受X.509证书。

If --tlsCAFile or tls.CAFile is not specified and you are not using X.509 authentication, you must set the tlsUseSystemCA parameter to true. This makes MongoDB use the system-wide CA certificate store when connecting to a TLS-enabled server.

If using X.509 authentication, --tlsCAFile or tls.CAFile must be specified unless using --tlsCertificateSelector.

For more information about TLS and MongoDB, see Configure mongod and mongos for TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .

--tlsClusterFile <filename>

Specifies the .pem file that contains the X.509 certificate-key file for membership authentication for the cluster or replica set.

On macOS or Windows, you can use the --tlsClusterCertificateSelector option to specify a certificate from the operating system's secure certificate store instead of a PEM key file. --tlsClusterFile and --tlsClusterCertificateSelector options are mutually exclusive. You can only specify one.

If --tlsClusterFile does not specify the .pem file for internal cluster authentication or the alternative --tlsClusterCertificateSelector, the cluster uses the .pem file specified in the --tlsCertificateKeyFile option or the certificate returned by the --tlsCertificateSelector.

If using X.509 authentication, --tlsCAFile or tls.CAFile must be specified unless using --tlsCertificateSelector.

mongod / mongos logs a warning on connection if the presented X.509 certificate expires within 30 days of the mongod/mongos host system time.

For more information about TLS and MongoDB, see Configure mongod and mongos for TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .

Important

For Windows only, MongoDB does not support encrypted PEM files. The mongod fails to start if it encounters an encrypted PEM file. To securely store and access a certificate for use with membership authentication on Windows, use --tlsClusterCertificateSelector.

--tlsCertificateSelector <parameter>=<value>

Note

Available on Windows and macOS as an alternative to --tlsCertificateKeyFile.可在Windows和macOS上作为--tlsCertificateKeyFile的替代方案。

Specifies a certificate property in order to select a matching certificate from the operating system's certificate store to use for TLS.指定证书属性,以便从操作系统的证书存储中选择匹配的证书用于TLS。

The --tlsCertificateKeyFile and --tlsCertificateSelector options are mutually exclusive. You can only specify one.

--tlsCertificateSelector accepts an argument of the format <property>=<value> where the property can be one of the following:

Property属性Value type值类型Description描述
subjectASCII stringSubject name or common name on certificate证书上的主题名称或通用名称
thumbprinthex string

A sequence of bytes, expressed as hexadecimal, used to identify a public key by its SHA-1 digest.以十六进制表示的字节序列,用于通过SHA-1摘要标识公钥。

The thumbprint is sometimes referred to as a fingerprint.thumbprint有时被称为fingerprint

When using the system SSL certificate store, OCSP (Online Certificate Status Protocol) is used to validate the revocation status of certificates.使用系统SSL证书存储时,OCSP(在线证书状态协议)用于验证证书的吊销状态。

The mongod searches the operating system's secure certificate store for the CA certificates required to validate the full certificate chain of the specified TLS certificate. mongod在操作系统的安全证书存储中搜索验证指定TLS证书的完整证书链所需的CA证书。Specifically, the secure certificate store must contain the root CA and any intermediate CA certificates required to build the full certificate chain to the TLS certificate. 具体来说,安全证书存储必须包含根CA和构建TLS证书的完整证书链所需的任何中间CA证书。Do not use --tlsCAFile or --tlsClusterCAFile to specify the root and intermediate CA certificate不要使用--tlsCAFile--tlsClusterCAFile指定根证书和中间CA证书

For example, if the TLS/SSL certificate was signed with a single root CA certificate, the secure certificate store must contain that root CA certificate. If the TLS/SSL certificate was signed with an intermediate CA certificate, the secure certificate store must contain the intermedia CA certificate and the root CA certificate.例如,如果TLS/SSL证书是用单个根CA证书签名的,则安全证书存储必须包含该根CA证书。如果TLS/SSL证书是用中间CA证书签名的,则安全证书存储必须包含中间CA证书和根CA证书。

Note

You cannot use the rotateCertificates command or the db.rotateCertificates() shell method when using net.tls.certificateSelector or --tlsCertificateSelector set to thumbprint

--tlsClusterCertificateSelector <parameter>=<value>

Note

Available on Windows and macOS as an alternative to --tlsClusterFile.可在Windows和macOS上作为--tlsClusterFile的替代方案。

Specifies a certificate property in order to select a matching certificate from the operating system's certificate store for internal X.509 membership authentication.指定证书属性,以便从操作系统的证书存储中选择匹配的证书进行内部X.509成员身份验证

--tlsClusterFile and --tlsClusterCertificateSelector options are mutually exclusive. You can only specify one.选项是互斥的。您只能指定一个。

--tlsClusterCertificateSelector accepts an argument of the format <property>=<value> where the property can be one of the following:

Property属性Value type值类型Description描述
subjectASCII stringSubject name or common name on certificate证书上的主题名称或通用名称
thumbprinthex string

A sequence of bytes, expressed as hexadecimal, used to identify a public key by its SHA-1 digest.以十六进制表示的字节序列,用于通过SHA-1摘要标识公钥。

The thumbprint is sometimes referred to as a fingerprint.thumbprint有时被称为fingerprint

The mongod searches the operating system's secure certificate store for the CA certificates required to validate the full certificate chain of the specified cluster certificate. Specifically, the secure certificate store must contain the root CA and any intermediate CA certificates required to build the full certificate chain to the cluster certificate. mongod在操作系统的安全证书存储中搜索验证指定群集证书的完整证书链所需的CA证书。具体来说,安全证书存储必须包含根CA和构建群集证书的完整证书链所需的任何中间CA证书。Do not use --tlsCAFile or --tlsClusterCAFile to specify the root and intermediate CA certificate.

For example, if the cluster certificate was signed with a single root CA certificate, the secure certificate store must contain that root CA certificate. If the cluster certificate was signed with an intermediate CA certificate, the secure certificate store must contain the intermedia CA certificate and the root CA certificate.例如,如果群集证书是用单个根CA证书签名的,则安全证书存储必须包含该根CA证书。如果群集证书是用中间CA证书签名的,则安全证书存储必须包含中间CA证书和根CA证书。

mongod / mongos logs a warning on connection if the presented X.509 certificate expires within 30 days of the mongod/mongos host system time.

--tlsClusterPassword <value>

Specifies the password to decrypt the X.509 certificate-key file specified with --tlsClusterFile. Use the --tlsClusterPassword option only if the certificate-key file is encrypted. In all cases, the mongod redacts the password from all logging and reporting output.

For more information about TLS and MongoDB, see Configure mongod and mongos for TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .

--tlsCAFile <filename>

Specifies the .pem file that contains the root certificate chain from the Certificate Authority. Specify the file name of the .pem file using relative or absolute paths.

Important

When starting a mongod instance with TLS/SSL enabled, you must specify a value for the --tlsCAFile flag, the net.tls.CAFile configuration option, or the tlsUseSystemCA parameter.

--tlsCAFile, tls.CAFile, and tlsUseSystemCA are all mutually exclusive.

Windows/macOS Only
If using --tlsCertificateSelector and/or --tlsClusterCertificateSelector, do not use --tlsCAFile to specify the root and intermediate CA certificates. Store all CA certificates required to validate the full trust chain of the --tlsCertificateSelector and/or --tlsClusterCertificateSelector certificates in the secure certificate store.

For more information about TLS and MongoDB, see Configure mongod and mongos for TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .

--tlsClusterCAFile <filename>

Specifies the .pem file that contains the root certificate chain from the Certificate Authority used to validate the certificate presented by a client establishing a connection. Specify the file name of the .pem file using relative or absolute paths. --tlsClusterCAFile requires that --tlsCAFile is set.

If --tlsClusterCAFile does not specify the .pem file for validating the certificate from a client establishing a connection, the cluster uses the .pem file specified in the --tlsCAFile option.

--tlsClusterCAFile lets you use separate Certificate Authorities to verify the client to server and server to client portions of the TLS handshake.

Windows/macOS Only
If using --tlsCertificateSelector and/or --tlsClusterCertificateSelector, do not use --tlsClusterCAFile to specify the root and intermediate CA certificates. Store all CA certificates required to validate the full trust chain of the --tlsCertificateSelector and/or --tlsClusterCertificateSelector certificates in the secure certificate store.

For more information about TLS and MongoDB, see Configure mongod and mongos for TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .

--tlsCRLFile <filename>

Specifies the .pem file that contains the Certificate Revocation List. Specify the file name of the .pem file using relative or absolute paths.指定包含证书吊销列表的.pem文件。使用相对或绝对路径指定.pem文件的文件名。

Note

  • You cannot specify a CRL file on macOS. Instead, you can use the system SSL certificate store, which uses OCSP (Online Certificate Status Protocol) to validate the revocation status of certificates. 您无法在macOS上指定CRL文件。相反,您可以使用系统SSL证书存储,它使用OCSP(在线证书状态协议)来验证证书的吊销状态。See --tlsCertificateSelector to use the system SSL certificate store.请参阅--tlsCertificateSelector以使用系统SSL证书存储。
  • To check for certificate revocation, MongoDB enables the use of OCSP (Online Certificate Status Protocol) by default as an alternative to specifying a CRL file or using the system SSL certificate store.为了检查证书吊销,MongoDB默认enablesOCSP(在线证书状态协议)作为指定CRL文件或使用系统SSL证书存储的替代方案。

For more information about TLS and MongoDB, see Configure mongod and mongos for TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .

--tlsAllowInvalidCertificates

Bypasses the validation checks for TLS certificates on other servers in the cluster and allows the use of invalid certificates to connect.绕过群集中其他服务器上TLS证书的验证检查,并允许使用无效证书进行连接。

Note

If you specify --tlsAllowInvalidCertificates or tls.allowInvalidCertificates: true when using X.509 authentication, an invalid certificate is only sufficient to establish a TLS connection but is insufficient for authentication.

When using the --tlsAllowInvalidCertificates setting, MongoDB logs a warning regarding the use of the invalid certificate.

For more information about TLS and MongoDB, see Configure mongod and mongos for TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .

--tlsAllowInvalidHostnames

Disables the validation of the hostnames in TLS certificates, when connecting to other members of the replica set or sharded cluster for inter-process authentication. This allows mongod to connect to other members if the hostnames in their certificates do not match their configured hostname.

For more information about TLS and MongoDB, see Configure mongod and mongos for TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .

--tlsAllowConnectionsWithoutCertificates

By default, the server bypasses client certificate validation unless the server is configured to use a CA file. If a CA file is provided, the following rules apply:默认情况下,除非服务器配置为使用CA文件,否则服务器会绕过客户端证书验证。如果提供了CA文件,则适用以下规则:

  • For clients that don't provide certificates, mongod or mongos encrypts the TLS/SSL connection, assuming the connection is successfully made.
  • For clients that present a certificate, mongod performs certificate validation using the root certificate chain specified by --tlsCAFile and reject clients with invalid certificates.

Use the --tlsAllowConnectionsWithoutCertificates option if you have a mixed deployment that includes clients that do not or cannot present certificates to the mongod.

For more information about TLS and MongoDB, see Configure mongod and mongos for TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .

--tlsDisabledProtocols <protocol(s)>

Prevents a MongoDB server running with TLS from accepting incoming connections that use a specific protocol or protocols. To specify multiple protocols, use a comma separated list of protocols.防止使用TLS运行的MongoDB服务器接受使用特定协议的传入连接。要指定多个协议,请使用逗号分隔的协议列表。

--tlsDisabledProtocols recognizes the following protocols: TLS1_0, TLS1_1, TLS1_2, and TLS1_3.

  • On macOS, you cannot disable TLS1_1 and leave both TLS1_0 and TLS1_2 enabled. You must disable at least one of the other two, for example, TLS1_0,TLS1_1.
  • To list multiple protocols, specify as a comma separated list of protocols. For example TLS1_0,TLS1_1.
  • Specifying an unrecognized protocol prevents the server from starting.指定无法识别的协议会阻止服务器启动。
  • The specified disabled protocols overrides any default disabled protocols.指定的禁用协议会覆盖任何默认禁用协议。

MongoDB disables the use of TLS 1.0 if TLS 1.1+ is available on the system. To enable the disabled TLS 1.0, specify none to --tlsDisabledProtocols.如果系统上有TLS 1.1+可用,MongoDB将禁用TLS 1.0。要启用已禁用的TLS 1.0,请在--tlsDisabledProtocols中指定none

Members of replica sets and sharded clusters must speak at least one protocol in common.副本集和分片集群的成员必须至少使用一种共同的协议。

--tlsFIPSMode

Directs the mongod to use the FIPS mode of the TLS library. Your system must have a FIPS compliant library to use the --tlsFIPSMode option.指示mongod使用TLS库的FIPS模式。系统必须具有符合FIPS的库才能使用--tlsFIPSMode选项。

Note

FIPS-compatible TLS/SSL is available only in MongoDB Enterprise. See Configure MongoDB for FIPS for more information.

Profiler Options分析器选项

--profile <level>

Default: 默认值:0

Configures the database profiler level. The following profiler levels are available:配置数据库分析器级别。以下分析器级别可用:

0
The profiler is off and does not collect any data. This is the default profiler level.分析器已关闭,不集合任何数据。这是默认的分析器级别。
1

The profiler collects data for operations that exceed the slowms threshold or match a specified filter.

When a filter is set:

  • The slowms and sampleRate options are not used for profiling.
  • The profiler only captures operations that match the filter.
2
The profiler collects data for all operations.

Warning

Profiling can degrade performance and expose unencrypted query data in the system log. Carefully consider any performance and security implications before configuring and enabling the profiler on a production deployment.分析可能会降低性能,并在系统日志中暴露未加密的查询数据。在生产部署上配置和启用分析器之前,请仔细考虑任何性能和安全影响。

See Profiler Overhead for more information on potential performance degradation.有关潜在性能下降的更多信息,请参阅Profiler开销

--slowms <integer>

Default: 默认值:100

The slow operation time threshold, in milliseconds. Operations that run for longer than this threshold are considered slow.慢速操作时间阈值,单位为毫秒。运行时间超过此阈值的操作被认为很慢。

Slow operations are logged based on workingMillis, which is the amount of time that MongoDB spends working on that operation. This means that factors such as waiting for locks and flow control do not affect whether an operation exceeds the slow operation threshold.慢速操作是基于workingMillis记录的,这是MongoDB在该操作上花费的时间。这意味着等待锁和流量控制等因素不会影响操作是否超过慢速操作阈值。

When logLevel is set to 0, MongoDB records slow operations to the diagnostic log at a rate determined by slowOpSampleRate.

At higher logLevel settings, all operations appear in the diagnostic log regardless of their latency with the following exception: the logging of slow oplog entry messages by the secondaries. The secondaries log only the slow oplog entries; increasing the logLevel does not log all oplog entries.

For mongod instances, --slowms affects the diagnostic log and, if enabled, the profiler.

--slowOpSampleRate <double>

Default: 默认值:1.0

The fraction of slow operations that should be profiled or logged. --slowOpSampleRate accepts values between 0 and 1, inclusive.

--slowOpSampleRate does not affect the slow oplog entry logging by the secondary members of a replica set. Secondary members log all oplog entries that take longer than the slow operation threshold regardless of the --slowOpSampleRate.

For mongod instances, --slowOpSampleRate affects the diagnostic log and, if enabled, the profiler.

Audit Options

--auditCompressionMode

New in version 5.3.在版本5.3中新增。

Specifies the compression mode for audit log encryption. You must also enable audit log encryption using either --auditEncryptionKeyUID or --auditLocalKeyFile.

--auditCompressionMode can be set to one of these values:

ValueDescription描述
zstdUse the zstd algorithm to compress the audit log.
none (default)Do not compress the audit log.

Note

Available only in MongoDB Enterprise. MongoDB Enterprise and Atlas have different configuration requirements.仅在MongoDB Enterprise中可用。MongoDB Enterprise和Atlas有不同的配置要求。

--auditDestination

Enables auditing and specifies where mongod sends all audit events.

--auditDestination can have one of the following values:可以具有以下值之一:

ValueDescription描述
syslog

Output the audit events to syslog in JSON format. Not available on Windows. Audit messages have a syslog severity level of info and a facility level of user.以JSON格式将审核事件输出到syslog。在Windows上不可用。审核消息具有syslog严重性级别的info和设施级别的user

The syslog message limit can result in the truncation of audit messages. The auditing system neither detects the truncation nor errors upon its occurrence.syslog消息限制可能会导致审计消息被截断。审计系统既不会检测到截断,也不会在截断发生时检测到错误。

consoleOutput the audit events to stdout in JSON format.
fileOutput the audit events to the file specified in --auditPath in the format specified in --auditFormat.

Note

Available only in MongoDB Enterprise and MongoDB Atlas.

--auditEncryptionKeyUID

New in version 6.0.在版本6.0中新增。

Specifies the unique identifier of the Key Management Interoperability Protocol (KMIP) key for audit log encryption.

You cannot use --auditEncryptionKeyUID and --auditLocalKeyFile together.

Note

Available only in MongoDB Enterprise. MongoDB Enterprise and Atlas have different configuration requirements.仅在MongoDB Enterprise中可用。MongoDB Enterprise和Atlas有不同的配置要求。

--auditFormat

Specifies the format of the output file for auditing if --auditDestination is file. The --auditFormat option can have one of the following values:

ValueDescription描述
JSONOutput the audit events in JSON format to the file specified in --auditPath.将JSON格式的审核事件输出到--auditPath中指定的文件。
BSONOutput the audit events in BSON binary format to the file specified in --auditPath.以BSON二进制格式将审核事件输出到--auditPath中指定的文件。

Printing audit events to a file in JSON format degrades server performance more than printing to a file in BSON format.以JSON格式将审核事件打印到文件比以BSON格式打印到文件更会降低服务器性能。

Note

Available only in MongoDB Enterprise and MongoDB Atlas.

--auditLocalKeyFile

New in version 5.3.在版本5.3中新增。

Specifies the path and file name for a local audit key file for audit log encryption.指定用于审核日志加密的本地审核键文件的路径和文件名。

Note

Only use --auditLocalKeyFile for testing because the key is not secured. To secure the key, use --auditEncryptionKeyUID and an external Key Management Interoperability Protocol (KMIP) server.仅使用--auditLocalKeyFile进行测试,因为键不安全。要保护键,请使用--auditEncryptionKeyUID和外部键管理互操作性协议(KMIP)服务器。

You cannot use --auditLocalKeyFile and --auditEncryptionKeyUID together.

Note

Available only in MongoDB Enterprise. MongoDB Enterprise and Atlas have different configuration requirements.仅在MongoDB Enterprise中可用。MongoDB Enterprise和Atlas有不同的配置要求。

--auditPath

Specifies the output file for auditing if --auditDestination has value of file. The --auditPath option can take either a full path name or a relative path name.如果--auditDestination的值为file,则指定用于审核的输出文件。--auditPath选项可以采用完整路径名或相对路径名。

Note

Available only in MongoDB Enterprise and MongoDB Atlas.

--auditFilter

Specifies the filter to limit the types of operations the audit system records. The option takes a string representation of a query document of the form:

{ <field1>: <expression1>, ... }

The <field> can be any field in the audit message, including fields returned in the param document. The <expression> is a query condition expression.

To specify an audit filter, enclose the filter document in single quotes to pass the document as a string.要指定审核筛选器,请将筛选器文档括在单引号中,以字符串形式传递文档。

To specify the audit filter in a configuration file, you must use the YAML format of the configuration file.要在配置文件中指定审核筛选器,必须使用配置文件的YAML格式。

Note

Available only in MongoDB Enterprise and MongoDB Atlas.

--auditSchema

Default: 默认值:mongo

New in version 8.0.在版本8.0中新增。

Specifies the format used for audit logs. You can specify one of the following values for --auditSchema:指定用于审核日志的格式。您可以为--auditSchema指定以下值之一:

ValueDescription描述
mongo

Logs are written in a format designed by MongoDB.日志以MongoDB设计的格式编写。

For example log messages, see mongo Schema Audit Messages.

OCSF

Logs are written in OCSF format. This option provides logs in a standardized format compatible with log processors.

For example log messages, see OCSF Schema Audit Messages.

inMemory OptionsinMemory选项

--inMemorySizeGB <float>

Default: 默认值:50% of physical RAM minus 1 GB.50%的物理RAM减去1GB。

Maximum amount of memory to allocate for the in-memory storage engine data, including indexes, the oplog (if the mongod is part of a replica set), sharded cluster metadata, etc.

Values can range from 256MB to 10TB and can be a float.值的范围可以从256MB到10TB,并且可以是浮点数。

By default, the in-memory storage engine uses 50% of physical RAM minus 1 GB.默认情况下,内存存储引擎使用50%的物理RAM减去1GB。

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

Encryption Key Management Options加密键管理选项

--enableEncryption

Default: 默认值:false

Enables encryption for the WiredTiger storage engine. This option must be enabled in order to pass in encryption keys and configurations.启用WiredTiger存储引擎的加密。必须启用此选项才能传入加密键和配置。

Note

Enterprise Feature企业特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

--encryptionCipherMode <string>

Default: 默认值:AES256-CBC

The cipher mode to use for encryption at rest:用于静态加密的密码模式:

ModeDescription描述
AES256-CBC256-bit Advanced Encryption Standard in Cipher Block Chaining Mode密码块链模式下的256位高级加密标准
AES256-GCM

256-bit Advanced Encryption Standard in Galois/Counter Mode伽罗瓦/计数器模式下的256位高级加密标准

Available only on Linux.仅在Linux上可用。

MongoDB Enterprise on Windows no longer supports AES256-GCM as a block cipher for encryption at rest. This usage is only supported on Linux.Windows上的MongoDB Enterprise不再支持AES256-GCM作为静态加密的块密码。这种用法仅在Linux上受支持。

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

--encryptionKeyFile <string>

The path to the local keyfile when managing keys via process other than KMIP. Only set when managing keys via process other than KMIP. If data is already encrypted using KMIP, MongoDB throws an error.通过KMIP以外的进程管理键时,本地键文件的路径。仅在通过KMIP以外的进程管理键时设置。如果数据已经使用KMIP加密,MongoDB会抛出错误。

The keyfile can contain only a single key. The key is either a 16 or 32 character string.键文件只能包含一个键。键是16或32个字符串。

Requires --enableEncryption.需要--enableEncryption

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

--kmipKeyIdentifier <string>

Unique KMIP identifier for an existing key within the KMIP server. Include to use the key associated with the identifier as the system key. KMIP服务器中现有键的唯一KMIP标识符。包括将与标识符关联的键用作系统键。You can only use the setting the first time you enable encryption for the mongod instance. Requires --enableEncryption.您只能在第一次为mongod实例启用加密时使用该设置。需要--enableEncryption

If unspecified, MongoDB requests that the KMIP server create a new key to utilize as the system key.如果未指定,MongoDB会请求KMIP服务器创建一个新键作为系统键。

If the KMIP server cannot locate a key with the specified identifier or the data is already encrypted with a key, MongoDB throws an error如果KMIP服务器无法找到具有指定标识符的键,或者数据已经用键加密,MongoDB会抛出错误

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

--kmipRotateMasterKey <boolean>

Default: 默认值:false

If true, rotate the master key and re-encrypt the internal keystore.如果为true,则旋转主键并重新加密内部键库。

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

--kmipServerName <string>

Hostname or IP address of the KMIP server to connect to. Requires --enableEncryption.要连接的KMIP服务器的主机名或IP地址。需要--enableEncryption

You can specify multiple KMIP servers as a comma-separated list, for example: server1.example.com,server2.example.com. On startup, the mongod attempts to establish a connection to each server in the order listed, and selects the first server to which it can successfully establish a connection. KMIP server selection occurs only at startup.您可以将多个KMIP服务器指定为逗号分隔的列表,例如:server1.example.com,server2.example.com。启动时,mongod尝试按所列顺序建立与每个服务器的连接,并选择可以成功建立连接的第一个服务器。KMIP服务器选择仅在启动时发生。

When connecting to a KMIP server, the mongod verifies that the specified --kmipServerName matches the Subject Alternative Name SAN (or, if SAN is not present, the Common Name CN) in the certificate presented by the KMIP server. 连接到KMIP服务器时,mongod会验证指定的--kmipServerName是否与KMIP服务器提供的证书中的主题备选名称SAN(或者,如果SAN不存在,则为通用名称CN)匹配。If SAN is present, mongod does not match against the CN. If the hostname does not match the SAN (or CN), the mongod fails to connect.如果存在SAN,则mongod与CN不匹配。如果主机名与SAN(或CN)不匹配,mongod将无法连接。

Starting in MongoDB 4.2, when performing comparison of SAN, MongoDB supports comparison of DNS names or IP addresses. In previous versions, MongoDB only supports comparisons of DNS names.从MongoDB 4.2开始,在执行SAN比较时,MongoDB支持DNS名称或IP地址的比较。在以前的版本中,MongoDB只支持DNS名称的比较。

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

--kmipPort <number>

Default: 默认值:5696

Port number to use to communicate with the KMIP server. Requires --kmipServerName. Requires --enableEncryption.用于与KMIP服务器通信的端口号。需要--kmipServerName。需要--enableEncryption

If specifying multiple KMIP servers with --kmipServerName, the mongod uses the port specified with --kmipPort for all provided KMIP servers.如果使用--kmipServerName指定多个KMIP服务器,mongod将对所有提供的KMIP服务器使用使用--kmipPort指定的端口。

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

--kmipConnectRetries <number>

Default: 默认值:0

How many times to retry the initial connection to the KMIP server. Use together with --kmipConnectTimeoutMS to control how long the mongod waits for a response between each retry.重试与KMIP服务器的初始连接的次数。与--kmipConnectTimeoutMS一起使用,可以控制mongod在每次重试之间等待响应的时间。

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

--kmipConnectTimeoutMS <number>

Default: 默认值:5000

Timeout in milliseconds to wait for a response from the KMIP server. 等待KMIP服务器响应的超时时间(毫秒)。If the --kmipConnectRetries setting is specified, the mongod waits for the specified interval between retries.如果指定了--kmipConnectRetries设置,mongod将等待指定的重试间隔。

Value must be 1000 or greater.值必须为1000或更大。

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

--kmipClientCertificateSelector <string>

New in version 5.0.在版本5.0中新增。 Available on Windows and macOS as an alternative to --kmipClientCertificateFile.可在Windows和macOS上作为--kmipClientCertificateFile的替代方案使用。

--kmipClientCertificateFile and --kmipClientCertificateSelector options are mutually exclusive. You can only specify one.选择是相互排斥的。您只能指定一个。

Specifies a certificate property in order to select a matching certificate from the operating system's certificate store to authenticate MongoDB to the KMIP server.指定证书属性,以便从操作系统的证书存储中选择匹配的证书,对MongoDB进行KMIP服务器身份验证。

--kmipClientCertificateSelector accepts an argument of the format <property>=<value> where the property can be one of the following:接受格式为<property>=<value>的参数,其中属性可以是以下之一:

Property属性Value type值类型Description描述
subjectASCII stringSubject name or common name on certificate证书上的主题名称或通用名称
thumbprinthex string

A sequence of bytes, expressed as hexadecimal, used to identify a public key by its SHA-1 digest.以十六进制表示的字节序列,用于通过SHA-1摘要标识公钥。

The thumbprint is sometimes referred to as a fingerprint.thumbprint有时被称为fingerprint

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

--kmipClientCertificateFile <string>

Path to the .pem file used to authenticate MongoDB to the KMIP server. The specified .pem file must contain both the TLS/SSL certificate and key.用于向KMIP服务器验证MongoDB的.pem文件的路径。指定的.pem文件必须同时包含TLS/SSL证书和键。

To use this option, you must also specify the --kmipServerName option.

Important

Enabling encryption using a KMIP server on Windows fails when using --kmipClientCertificateFile and the KMIP server enforces TLS 1.2.当使用--kmipClientCertificateFile并且KMIP服务器强制执行TLS 1.2时,在Windows上使用KMIP服务器启用加密失败。

To enable encryption at rest with KMIP on Windows, you must:要在Windows上使用KMIP启用静态加密,您必须:

  • Import the client certificate into the Windows Certificate Store.将客户端证书导入Windows证书存储区。
  • Use the --kmipClientCertificateSelector option.

Note

On macOS or Windows, you can use a certificate from the operating system's secure store instead of a PEM key file. See --kmipClientCertificateSelector.在macOS或Windows上,您可以使用操作系统安全存储中的证书,而不是PEM键文件。请参阅--kmipClientCertificateSelector

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

--kmipClientCertificatePassword <string>

The password to decrypt the Private Key of the Client Certificate that connects to the KMIP server. This option authenticates MongoDB to the KMIP server and requires that you provide a --kmipClientCertificateFile.解密连接到KMIP服务器的客户端证书私钥的密码。此选项向KMIP服务器验证MongoDB,并要求您提供--kmipClientCertificateFile

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。

--kmipServerCAFile <string>

Path to CA File. Used for validating secure client connection to KMIP server.CA文件的路径。用于验证与KMIP服务器的安全客户端连接。

Note

On macOS or Windows, you can use a certificate from the operating system's secure store instead of a PEM key file. 在macOS或Windows上,您可以使用操作系统安全存储中的证书,而不是PEM键文件。See --kmipClientCertificateSelector. When using the secure store, you do not need to, but can, also specify the --kmipServerCAFile.请参阅--kmipClientCertificateSelector。使用安全存储时,您不需要,但也可以指定--kmipServerCAFile

--kmipActivateKeys <boolean>

Default: 默认值:true

New in version 5.3.在版本5.3中新增。

Activates all newly created KMIP keys upon creation and then periodically checks those keys are in an active state.在创建时激活所有新创建的KMIP键,然后定期检查这些键是否处于活动状态。

When --kmipActivateKeys is true and you have existing keys on a KMIP server, the key must be activated first or the mongod node fails to start.--kmipActivateKeystrue并且KMIP服务器上有现有键时,必须先激活键,否则mongod节点将无法启动。

If the key being used by the mongod transitions into a non-active state, the mongod node shuts down unless kmipActivateKeys is false. 如果mongod使用的键转换为非活动状态,则mongod节点将关闭,除非kmipActivateKeysfalseTo ensure you have an active key, rotate the KMIP master key by using --kmipRotateMasterKey.要确保您有一个活动键,请使用--kmipRotateMasterKey旋转KMIP主键。

--kmipKeyStatePollingSeconds <integer>

Default: 默认值:900 seconds

New in version 5.3.在版本5.3中新增。

Frequency in seconds at which mongod polls the KMIP server for active keys.mongod向KMIP服务器轮询活动键的频率(秒)。

To disable disable polling, set the value to -1.要禁用轮询,请将值设置为-1

--kmipUseLegacyProtocol <boolean>

Default: 默认值:false

New in version 7.0.在版本7.0中新增。 (and 6.0.6)

When true, mongod uses KMIP protocol version 1.0 or 1.1 instead of the default version. The default KMIP protocol is version 1.2.如果为truemongod将使用KMIP协议版本1.0或1.1,而不是默认版本。默认的KMIP协议版本为1.2。

To use audit log encryption with KMIP version 1.0 or 1.1, you must specify auditEncryptKeyWithKMIPGet at startup.要在KMIP 1.0或1.1版本中使用审核日志加密,您必须在启动时指定auditEncryptKeyWithKMIPGet

--eseDatabaseKeyRollover

Roll over the encrypted storage engine database keys configured with AES256-GCM cipher.滚动配置了AES256-GCM密码的加密存储引擎数据库键。

When mongod instance is started with this option, the instance rotates the keys and exits.当使用此选项启动mongod实例时,实例会旋转键并退出。

Note

Enterprise Feature企业版特性

Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。