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 MongoDB Atlas为所有MongoDB Atlas部署管理mongod for all MongoDB Atlas deployments.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注意事项
mongodincludes 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如果此线程失败,它将终止发起进程。为了避免最常见的故障,请确认运行该流程的用户有权创建FTDCdiagnostic.datadirectory.diagnostic.data(诊断数据)目录。For对于mongodthe directory is withinstorage.dbPath.mongod,目录位于storage.dbPath中。For对于mongosit is parallel tosystemLog.path.mongos来说,它与systemLog.path并行。
Options选项
Changed in version 6.1.在版本6.1中的更改。
MongoDB always enables journaling. As a result, MongoDB removes theMongoDB始终支持日志记录。因此,MongoDB删除了storage.journal.enabledoption and the corresponding--journaland--nojournalcommand-line options.storage.journal.enabled选项以及相应的--journal和--nojournal命令行选项。
Changed in version 5.2.在版本5.2中的更改。
MongoDB removes theMongoDB删除了--cpucommand-line option.--cpu命令行选项。
Changed in version 5.0.在版本5.0中的更改。
MongoDB removes theMongoDB删除了--serviceExecutorcommand-line option and the correspondingnet.serviceExecutorconfiguration option.--serviceExecutor命令行选项和相应的net.serviceExecutor配置选项。
Core Options核心选项
--authEnables 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要配置用户,请使用mongoshclient. If no users exist, the localhost interface has access to the database until you create the first user.mongosh客户端。如果不存在用户,则localhost接口可以访问数据库,直到您创建第一个用户。
--bind_ip <hostnames|ipaddresses|Unix domain socket paths>Default:默认值:localhostThe hostnames and/or IP addresses and/or full Unix domain socket paths on whichmongodshould listen for client connections. You may attachmongodto 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如果将IPv6地址或解析为IPv6地址的主机名指定为--bind_ip, you must startmongodwith--ipv6to enable IPv6 support.--bind_ip,,则必须以--ipv6开头mongod才能启用IPv6支持。Specifying an IPv6 address to将IPv6地址指定为--bind_ipdoes not enable IPv6 support.--bind_ip不会启用IPv6支持。If specifying a link-local IPv6 address (如果指定一个链接本地IPv6地址(fe80::/10), you must append the zone index to that address (i.e.fe80::<address>%<adapter-name>).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要绑定到所有IPv4地址,请输入0.0.0.0.0.0.0.0。To bind to all IPv4 and IPv6 addresses, enter要绑定到所有IPv4和IPv6地址,请输入::,0.0.0.0or an asterisk"*"(enclose the asterisk in quotes to avoid filename pattern expansion). Alternatively, use thenet.bindIpAllsetting.::,0.0.0.0或星号"*"(将星号括在引号中以避免文件名模式扩展)。或者,使用net.bindIpAll设置。Note
--bind_ipand--bind_ip_allare mutually exclusive. Specifying both options causesmongodto throw an error and terminate.--bind_ip和--bind_ip_all是互斥的。指定这两个选项会导致mongod抛出错误并终止。The command-line option命令行选项--bindoverrides the configuration file settingnet.bindIp.--bind覆盖配置文件设置net.bindIp。
--bind_ip_allIf specified, the如果指定,mongodinstance binds to all IPv4 addresses (i.e.0.0.0.0). Ifmongodstarts with--ipv6,--bind_ip_allalso binds to all IPv6 addresses (i.e.::).mongod实例将绑定到所有IPv4地址(即0.0.0.0)。如果mongod以--ipv6开头,--bind_ip_all也会绑定到所有ipv6地址(即::)。mongodonly supports IPv6 if started with--ipv6. Specifying--bind_ip_allalone 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_ipoption to::,0.0.0.0or to an asterisk"*"(enclose the asterisk in quotes to avoid filename pattern expansion).--bind_ip选项设置为::,0.0.0.0或星号"*"(将星号括在引号中以避免文件名模式扩展)。Note
--bind_ipand--bind_ip_allare 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 theIP地址/CIDR(无类域间路由)范围列表,mongodvalidates authentication requests from other members of the replica set and, if part of a sharded cluster, themongosinstances.mongod根据这些范围验证来自副本集其他成员的身份验证请求,如果是分片集群的一部分,则验证mongos实例的身份验证。Themongodverifies 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如果IP地址不存在,则服务器不会对mongodormongos.mongod或mongos进行身份验证。--clusterIpSourceAllowlisthas no effect on a对未经身份验证启动的mongodstarted without authentication.mongod没有影响。--clusterIpSourceAllowlistaccepts 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,::1Important
Ensure确保--clusterIpSourceAllowlistincludes the IP address or CIDR ranges that include the IP address of each replica set member ormongosin 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确保配置文件使用ASCII编码。mongodinstance does not support configuration files with non-ASCII encoding, including UTF-8.mongod实例不支持非ASCII编码的配置文件,包括UTF-8。
--configExpand <none|rest|exec>Default:默认值:noneEnables using Expansion Directives in configuration files. Expansion directives allow you to set externally sourced values for configuration file options.允许在配置文件中使用扩展指令。扩展指令允许您为配置文件选项设置外部来源的值。--configExpandsupports the following expansion directives:支持以下扩展指令:Value值Description描述noneDefault.默认值。mongoddoes not expand expansion directives.mongodfails to start if any configuration file settings use expansion directives.mongod不扩展扩展指令。如果任何配置文件设置使用扩展指令,mongod将无法启动。restmongodexpands__restexpansion directives when parsing the configuration file.mongod在解析配置文件时扩展__rest扩展指令。execmongodexpands__execexpansion directives when parsing the configuration file.mongod在解析配置文件时扩展__exec扩展指令。You can specify multiple expansion directives as a comma-separated list, for example:您可以将多个扩展指令指定为逗号分隔的列表,例如:rest, exec.rest, exec。If the configuration file contains expansion directives not specified to如果配置文件包含未指定为--configExpand, themongodreturns 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:默认值:0700Sets the permission for the UNIX domain socket file.设置UNIX域套接字文件的权限。--filePermissionsapplies only to Unix-based systems.仅适用于基于Unix的系统。
--forkEnables a daemon mode that runs the启用后台运行mongodprocess in the background.mongod进程的守护进程模式。TheWindows不支持--forkoption is not supported on Windows.--fork选项。By default默认情况下,mongoddoes not run as a daemon. You runmongodas a daemon by using either--forkor a controlling process that handles daemonization, such asupstartorsystemd.mongod不作为守护进程运行。您可以使用--fork或处理守护进程的控制进程(如upstart或systemd)将mongod作为守护进程运行。To use要使用--fork, configure log output for themongodwith one of the following:--fork,请使用以下方法之一配置mongod的日志输出:
--help, -hReturns information on the options and use of返回有关mongod.mongod的选项和使用的信息。
--ipv6Enables IPv6 support.启用IPv6支持。mongoddisables IPv6 support by default.mongod默认禁用IPv6支持。Setting设置--ipv6does not direct themongodto listen on any local IPv6 addresses or interfaces. To configure themongodto listen on an IPv6 interface, you must either:--ipv6会指示mongod监听任何本地ipv6地址或接口。要将mongod配置为在IPv6接口上侦听,您必须:Configure使用一个或多个IPv6地址或解析为IPv6地址的主机名配置--bind_ipwith one or more IPv6 addresses or hostnames that resolve to IPv6 addresses, or--bind_ip,或Set将--bind_ip_alltotrue.--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实例在分片集群或副本集中用于相互身份验证的共享键的键文件的路径。--keyFileimplies--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目标系统SOMAXCONNconstantSOMAXCONN常数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为防止未定义的行为,请为此参数指定一个介于1and the local systemSOMAXCONNconstant.1和本地系统SOMAXCONN常量之间的值。The default value for thelistenBacklogparameter depends on the target system. On Linux, MongoDB uses/proc/sys/net/core/somaxconn. On all other target systems, MongoDB uses the compile time constantSOMAXCONN.listenBacklog参数的默认值取决于目标系统。在Linux上,MongoDB使用/proc/sys/net/core/somaxconn。在所有其他目标系统上,MongoDB使用编译时常数SOMAXCONN。Some systems may interpret一些系统可以象征性地解释SOMAXCONNsymbolically, and others numerically. The actual listen backlog applied in practice may differ from any numeric interpretation of theSOMAXCONNconstant or argument to--listenBacklog.SOMAXCONN,而另一些系统则可以数字地解释。实际应用的监听积压可能与SOMAXCONN常量或--listenBacklog参数的任何数值解释不同。Passing a value for the根据标准,为listenBacklogparameter that exceeds theSOMAXCONNconstant 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.较高的值可能会被默默地截断整数,可能会被忽略,可能会导致意外的资源消耗,或产生其他不利后果。
--logappendAppends new entries to the end of the existing log file when the当mongodinstance restarts. Without this option,mongodbacks 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默认情况下,MongoDB会移动任何现有的日志文件,而不是覆盖它。要将其追加到日志文件中,请设置--logappendoption.--logappend选项。
--logRotate <string>Default:默认值:renameDetermines the behavior for the确定logRotatecommand when rotating the server log and/or the audit log. Specify eitherrenameorreopen:logRotate命令在旋转服务器日志和/或审核日志时的行为。指定rename(重命名)或reopen(重新打开):renamerenames the log file.重命名日志文件。reopencloses and reopens the log file following the typical Linux/Unix log rotate behavior. Use按照典型的Linux/Unix日志轮换行为关闭和重新打开日志文件。使用Linux/Unix logrotate实用程序时使用reopenwhen using the Linux/Unix logrotate utility to avoid log loss.reopen以避免日志丢失。If you specify如果指定reopen, you must also use--logappend.reopen,则还必须使用--logappend。
--maxConns <number>The maximum number of simultaneous connections thatmongodaccepts. 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,zlibSpecifies the default compressor(s) to use for communication between this指定用于此mongodinstance and:mongod实例和之间通信的默认压缩器:other members of the deployment if the instance is part of a replica set or a sharded cluster如果实例是副本集或分片集群的一部分,则部署的其他成员mongoshdrivers that support the支持OP_COMPRESSEDmessage format.OP_COMPRESSED消息格式的驱动程序。
MongoDB supports the following compressors:MongoDB支持以下压缩器:Note
Bothmongodandmongosinstances default tosnappy,zstd,zlibcompressors, in that order.mongod和mongos实例都默认按顺序使用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例如,如果mongoshspecifies the following network compressorszlib,snappyand themongodspecifiessnappy,zlib, messages betweenmongoshandmongoduseszlib.mongosh指定了以下网络压缩器zlib,snappy,而mongod指定了snappy,zlib,则mongosh和mongod之间的消息将使用zlib。If the parties do not share at least one common compressor, messages between the parties are uncompressed.如果双方不共享至少一个公共压缩器,则双方之间的消息将被解压缩。For example, if例如,如果mongoshspecifies the network compressorzlibandmongodspecifiessnappy, messages betweenmongoshandmongodare not compressed.mongosh指定网络压缩器zlib,mongod指定snappy,则mongosh和mongod之间的消息不会被压缩。
--noauthDisables authentication. Currently the default. Exists for future compatibility and clarity.禁用身份验证。目前为默认值。为了未来的兼容性和清晰度而存在。
--noscriptingDisables the scripting engine.禁用脚本引擎。
--notablescanForbids operations that require a collection scan.禁止需要集合扫描的操作。See有关更多信息,请参阅notablescanfor additional information.notablescan。
--nounixsocketDisables listening on the UNIX domain socket.禁用UNIX域套接字上的侦听。--nounixsocketapplies only to Unix-based systems.--nounixsocket仅适用于基于Unix的系统。Themongodprocess always listens on the UNIX socket unless one of the following is true:mongod进程始终侦听UNIX套接字,除非以下情况之一为真:--nounixsocketis set已设置net.bindIpis not set未设置net.bindIpdoes not specify未指定localhostor its associated IP addresslocalhost或其关联的IP地址
默认情况下,从官方安装MongoDB社区版和安装MongoDB社区版软件包安装的mongodinstalled from official Install MongoDB Community Edition and Install MongoDB Community Edition packages have thebind_ipconfiguration set to127.0.0.1by default.mongod的bind_ip配置设置为127.0.0.1。
--outputConfigOutputs the将mongodinstance's configuration options, formatted in YAML, tostdoutand exits themongodinstance.mongod实例的配置选项(以YAML格式)输出到stdout并退出mongod示例。For configuration options that uses Externally Sourced Configuration File Values for Self-Managed Deployments,对于使用外部源配置文件值进行自我管理部署的配置选项,--outputConfigreturns 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指定一个文件位置来存储mongodprocess. The user running themongodormongosprocess must be able to write to this path.mongod进程的进程ID(PID)。运行mongod或mongos进程的用户必须能够写入此路径。If the如果未指定--pidfilepathoption is not specified, the process does not create a PID file. This option is generally only useful in combination with the--forkoption.--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在Linux上,PID文件管理通常由发行版的init系统负责:通常是/etc/init.ddirectory, or a systemd unit file registered withsystemctl./etc/init.d目录中的服务文件,或向systemctl注册的systemd单元文件。Only use the如果您没有使用这些init系统之一,请仅使用--pidfilepathoption if you are not using one of these init systems. For more information, please see the respective Installation Guide for your operating system.--pidfilepath选项。有关更多信息,请参阅适用于您的操作系统的相应安装指南。Note
macOS
On macOS, PID file management is generally handled by在macOS上,PID文件管理通常由brew处理。仅当您未在macOS系统上使用brew. Only use the--pidfilepathoption if you are not usingbrewon your macOS system. For more information, please see the respective Installation Guide for your operating system.brew时,才使用--pidfilepath选项。有关更多信息,请参阅适用于您的操作系统的相应安装指南。
--port <port>Default:
27017 if27017如果mongodis not a shard member or a config server membermongod不是分片成员或配置服务器成员27018 ifmongodis ashard member27018如果mongod是分片成员27019 if27019如果mongodis aconfig server membermongod是配置服务器成员
The TCP port on which the MongoDB instance listens for client connections.MongoDB实例监听客户端连接的TCP端口。The--portoption accepts a range of values between0and65535. Setting the port to0configuresmongodto use an arbitrary port assigned by the operating system.--port选项接受0到65535之间的值范围。将端口设置为0将配置mongod使用操作系统分配的任意端口。
--quietRuns在试图限制输出量的安静模式下运行mongodin 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客户端元数据
--redactClientLogDataAvailable in MongoDB Enterprise only.仅在MongoDB企业版中可用。A运行mongodrunning with--redactClientLogDataredacts any message accompanying a given log event before logging. This prevents themongodfrom writing potentially sensitive data stored on the database to the diagnostic log.--redactClientLogData的mongod在记录之前会编辑给定日志事件附带的任何消息。这可以防止mongod将存储在数据库上的潜在敏感数据写入诊断日志。Metadata such as error or operation codes, line numbers, and source file names are still visible in the logs.元数据,如错误或操作代码、行号和源文件名,在日志中仍然可见。Use将--redactClientLogDatain 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)存储在一个或多个集合中。Themongodlogs events such as those related to CRUD operations, sharding metadata, etc. It is possible that themongodmay expose PII as a part of these logging operations.mongod记录与CRUD操作、分片元数据等相关的事件。mongod可能会在这些日志操作中暴露PII。A运行mongodrunning with--redactClientLogDataremoves any message accompanying these events before being output to the log, effectively removing the PII.--redactClientLogData的mongod在输出到日志之前会删除伴随这些事件的任何消息,从而有效地删除PII。Diagnostics on a由于缺少与日志事件相关的数据,对运行mongodrunning with--redactClientLogDatamay be more difficult due to the lack of data related to a log event.--redactClientLogData的mongod进行诊断可能会更加困难。See the process logging manual page for an example of the effect of有关--redactClientLogDataon log output.--redactClientLogData对日志输出的影响示例,请参阅进程日志记录手册页面。On a running在正在运行的mongod, usesetParameterwith theredactClientLogDataparameter to configure this setting.mongod上,使用setParameter和redactClientLogData参数来配置此设置。
--setParameter <options>Specifies one of the MongoDB parameters described in MongoDB Server Parameters for a Self-Managed Deployment. You can specify multiple指定自我管理部署的MongoDB服务器参数中描述的MongoDB参数之一。您可以指定多个setParameterfields.setParameter字段。
--shutdownThe--shutdownoption cleanly and safely terminates themongodprocess.--shutdown选项干净安全地终止mongod进程。When invoking使用此选项调用mongodwith this option you must set the--dbpathoption either directly or by way of the configuration file and the--configoption.mongod时,必须直接或通过配置文件和--config选项设置--dbpath选项。The--shutdownoption is available only on Linux systems.--shutdown选项仅在Linux系统上可用。For additional ways to shut down, see also Stop有关关闭的其他方法,请参阅停止mongodProcesses.mongod进程。
--sysinfoReturns diagnostic system information and then exits. The information provides the page size, the number of physical pages, and the number of available physical pages.返回诊断系统信息,然后退出。该信息提供了页面大小、物理页面数量和可用物理页面数量。
--syslogSends all logging output to the host's syslog system rather than to standard output or to a log file (将所有日志输出发送到主机的syslog系统,而不是标准输出或日志文件(--logpath).--logpath)。TheWindows不支持--syslogoption is not supported on Windows.--syslog选项。Warning
Thesyslogdaemon 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我们建议在生产系统中使用--logpathoption for production systems to ensure accurate timestamps.--logpath选项,以确保时间戳的准确性。MongoDB includes the component in its log messages toMongoDB在其发送给syslog.syslog的日志消息中包含了该组件。... ACCESS [repl writer worker 5] Unsupported modification to roles collection ...
--syslogFacility <string>Default:默认值:userSpecifies 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时使用的设施级别。您指定的值必须得到操作系统syslog实现的支持。要使用此选项,必须启用--syslogoption.--syslog选项。
--timeStampFormat <string>Default:默认值:iso8601-localThe time format for timestamps in log messages. Specify one of the following values:日志消息中时间戳的时间格式。指定以下值之一:Value值Description描述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.000Ziso8601-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:00Note
--timeStampFormatno longer supports不再支持ctime.ctime。An example ofctimeformatted 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 toLinux和macOS软件包附带的配置文件默认将时区数据库路径设置为/usr/share/zoneinfoby default./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,MongoDB使用第三方timelib库来提供时区之间的准确转换。由于最近的更新,timelibcould create inaccurate time zone conversions in older versions of MongoDB.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要在5.0之前的MongoDB版本中明确链接到时区数据库,请下载时区数据库。并使用timeZoneInfoparameter.timeZoneInfo参数。
--traceExceptionsFor internal diagnostic use only.仅供内部诊断使用。
--transitionToAuthAllows the
mongodto accept and create authenticated and non-authenticated connections to and from othermongodandmongosinstances in the deployment. 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.For example, if using keyfiles for internal authentication, the
mongodcreates an authenticated connection with anymongodormongosin the deployment using a matching keyfile. If the security mechanisms do not match, themongodutilizes a non-authenticated connection instead.A
mongodrunning with--transitionToAuthdoes not enforce user access controls. Users may connect to your deployment without any access control checks and perform read, write, and administrative operations.Note
A
mongodrunning with internal authentication and without--transitionToAuthrequires clients to connect using user access controls. Update clients to connect to themongodusing the appropriate user prior to restartingmongodwithout--transitionToAuth.
--unixSocketPrefix <path>Default:默认值:/tmpThe path for the UNIX socket.
--unixSocketPrefixapplies only to Unix-based systems.If this option has no value, the
mongodprocess creates a socket with/tmpas a prefix. MongoDB creates and listens on a UNIX socket unless one of the following is true:net.unixDomainSocket.enabledisfalse--nounixsocketis setnet.bindIpis not setnet.bindIpdoes not specifylocalhostor its associated IP address
--verbose, -vIncreases the amount of internal reporting returned on standard output or in log files. Increase the verbosity with the增加标准输出或日志文件中返回的内部报告量。通过多次包含选项来增加-vform 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. For example, if the verbosity level is 2, MongoDB logs
D2. In previous versions, MongoDB log messages only specifiedDfor Debug level.
--versionReturns the返回mongodrelease 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 themongodauthenticates 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. MongoDB supports following LDAP referrals as defined in RFC 4511 4.1.10. Do not use--ldapServersfor listing every LDAP server in your infrastructure.This setting can be configured on a running
mongodusingsetParameter.If unset,如果未设置,mongodcannot use LDAP authentication or authorization.mongod将无法使用LDAP身份验证或授权。
--ldapValidateLDAPServerConfig <boolean>Available in MongoDB Enterprise在MongoDB企业版中可用。A flag that determines if the一个标志,用于确定mongodinstance checks the availability of theLDAP server(s)as part of its startup:mongod实例是否在启动过程中检查LDAP服务器的可用性:If如果为true, themongodinstance performs the availability check and only continues to start up if the LDAP server is available.true,mongod实例将执行可用性检查,并且仅在LDAP服务器可用时才继续启动。- If
false, themongodinstance skips the availability check; i.e. the instance starts up even if the LDAP server is unavailable.
--ldapQueryUser <string>Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。The identity with which连接到LDAP服务器或在LDAP服务器上执行查询时,mongodbinds as, when connecting to or performing queries on an LDAP server.mongod绑定为的标识。Only required if any of the following are true:仅当以下任何一项为真时才需要:Using LDAP authorization.使用LDAP授权。Using an LDAP query for使用LDAP查询进行用户名转换。username transformation.The LDAP server disallows anonymous bindsLDAP服务器不允许匿名绑定
You must use您必须将--ldapQueryUserwith--ldapQueryPassword.--ldapQueryUser与--ldapQueryPassword一起使用。If unset,如果未设置,mongoddoesn't attempt to bind to the LDAP server.mongod不会尝试绑定到LDAP服务器。This setting can be configured on a running可以使用mongodusingsetParameter.setParameter在正在运行的mongod上配置此设置。Note
Windows MongoDB deployments can use
--ldapBindWithOSDefaultsinstead of--ldapQueryUserand--ldapQueryPassword. You cannot specify both--ldapQueryUserand--ldapBindWithOSDefaultsat the same time.
--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.
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.
The ldapQueryPassword setParameter command accepts either a string or an array of strings. 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.
Note
Windows MongoDB deployments can use --ldapBindWithOSDefaults instead of --ldapQueryUser and --ldapQueryPassword. You cannot specify both --ldapQueryPassword and --ldapBindWithOSDefaults at the same time.
--ldapBindWithOSDefaults <bool>Default:默认值:falseAvailable in MongoDB Enterprise for the Windows platform only.仅适用于Windows平台的MongoDB企业版。Allows允许mongodto authenticate, or bind, using your Windows login credentials when connecting to the LDAP server.mongod在连接到LDAP服务器时使用您的Windows登录凭据进行身份验证或绑定。Only required if:仅在以下情况下需要:- Using LDAP authorization.
Using an LDAP query for使用LDAP查询进行用户名转换。username transformation.The LDAP server disallows anonymous bindsLDAP服务器不允许匿名绑定
Use
--ldapBindWithOSDefaultsto replace--ldapQueryUserand--ldapQueryPassword.
--ldapBindMethod <string>Default:默认值:simpleAvailable in MongoDB Enterprise only.仅在MongoDB企业版中可用。The method
mongoduses to authenticate to an LDAP server. Use with--ldapQueryUserand--ldapQueryPasswordto connect to the LDAP server.--ldapBindMethodsupports the following values:simple-mongoduses simple authentication.sasl-mongoduses SASL protocol for authentication
If you specify
sasl, you can configure the available SASL mechanisms using--ldapBindSaslMechanisms.mongoddefaults to usingDIGEST-MD5mechanism.
--ldapBindSaslMechanisms <string>Default:默认值:DIGEST-MD5Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。A comma-separated list of SASL mechanismsmongodcan use when authenticating to the LDAP server. Themongodand the LDAP server must agree on at least one mechanism.mongod在向LDAP服务器进行身份验证时可以使用的SASL机制的逗号分隔列表。mongod和LDAP服务器必须就至少一种机制达成一致。Themongoddynamically 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在mongodhost 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如果在自我管理部署上使用GSSAPISASL mechanism for use with Kerberos Authentication on Self-Managed Deployments, verify the following for themongodhost machine:GSSAPISASL机制与Kerberos身份验证一起使用,请为mongod主机验证以下内容:Linux-
- The
KRB5_CLIENT_KTNAMEenvironment variable resolves to the name of the client Linux Keytab Files for the host machine. For more on Kerberos environment variables, please defer to the Kerberos documentation. - The client keytab includes a User Principal for the
mongodto use when connecting to the LDAP server and execute LDAP queries.
- The
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. Set
--ldapBindWithOSDefaultstotrueto allowmongodto use the generated credentials when connecting to the Active Directory server and execute queries.
Set
--ldapBindMethodtosaslto use this option.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的更多信息,请参阅以下资源:For Linux, please see the Cyrus SASL documentation.对于Linux,请参阅Cyrus SASL文档。For Windows, please see the Windows SASL documentation.对于Windows,请参阅Windows SASL文档。
--ldapTransportSecurity <string>Default:默认值:tlsAvailable in MongoDB Enterprise only.仅在MongoDB企业版中可用。By default,默认情况下,mongodcreates 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.conffile. Your operating system's package manager creates this file as part of the MongoDB Enterprise installation, via thelibldapdependency. See the documentation forTLS Optionsin the ldap.conf OpenLDAP documentation for more complete instructions.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.
Set
--ldapTransportSecuritytononeto disable TLS/SSL betweenmongodand the LDAP server.Warning
Setting
--ldapTransportSecuritytononetransmits plaintext information and possibly credentials betweenmongodand the LDAP server.
--ldapTimeoutMS <int>Default:默认值:10000Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。The amount of time in millisecondsmongodshould wait for an LDAP server to respond to a request.mongod应等待LDAP服务器响应请求的时间量(毫秒)。Increasing the value of
--ldapTimeoutMSmay prevent connection failure between the MongoDB server and the LDAP server, if the source of the failure is a connection timeout. Decreasing the value of--ldapTimeoutMSreduces the time MongoDB waits for a response from the LDAP server.This setting can be configured on a running可以使用mongodusingsetParameter.setParameter在正在运行的mongod上配置此设置。
--ldapRetryCount <int>New in version 6.1.在版本6.1中新增。Default:默认值:0Available 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
mongodfor authentication to a LDAP Distinguished Name (DN). You may need to use--ldapUserToDNMappingto transform a username into an LDAP DN in the following scenarios:- Performing LDAP authentication with simple LDAP binding, where users authenticate to MongoDB with usernames that are not full LDAP DNs.
- Using an
LDAP authorization query templatethat requires a DN. - 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.
--ldapUserToDNMappingexpects a quote-enclosed JSON-string representing an ordered array of documents. Each document contains a regular expressionmatchand either asubstitutionorldapQuerytemplate used for transforming the incoming username.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与提供的用户名匹配的ECMAScript格式的正则表达式(regex)。每个括号括起来的部分表示substitutionorldapQuery.substitution或ldapQuery使用的正则表达式捕获组。"(.+)ENGINEERING""(.+)DBA"substitutionAn LDAP distinguished name (DN) formatting template that converts the authentication name matched by the
matchregex into a LDAP DN. Each curly bracket-enclosed numeric value is replaced by the corresponding regex capture group extracted from the authentication username via thematchregex.The result of the substitution must be an RFC4514 escaped string.
"cn={0},ou=engineering, dc=example,dc=com"ldapQueryA LDAP query formatting template that inserts the authentication name matched by the matchregex into an LDAP query URI encoded respecting RFC4515 and RFC4516. Each curly bracket-enclosed numeric value is replaced by the corresponding regex capture group extracted from the authentication username via thematchexpression.mongodexecutes the query against the LDAP server to retrieve the LDAP DN for the authenticated user.mongodrequires exactly one returned result for the transformation to be successful, ormongodskips this transformation."ou=engineering,dc=example, dc=com??one?(user={0})"Note
For each document in the array, you must use either对于数组中的每个文档,必须使用substitutionorldapQuery. You cannot specify both in the same document.substitution或ldapQuery。不能在同一文档中同时指定两者。When performing authentication or authorization,
mongodsteps through each document in the array in the given order, checking the authentication username against thematchfilter. If a match is found,mongodapplies the transformation and uses the output for authenticating the user.mongoddoes not check the remaining documents in the array.If the given document does not match the provided authentication name,
mongodcontinues through the list of documents to find additional matches. If no matches are found in any document, or the transformation the document describes fails,mongodreturns an error.mongodalso returns an error if one of the transformations cannot be evaluated due to networking or authentication failures to the LDAP server.mongodrejects the connection request and does not check the remaining documents in the array.Starting in MongoDB 5.0,
--ldapUserToDNMappingaccepts an empty string""or empty array[ ]in place of a mapping documnent. 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.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.COMmatches the first document. The regex capture group{0}corresponds to the stringalice. The resulting output is the DN"cn=alice,ou=engineering,dc=example,dc=com".A user with username
bob@DBA.EXAMPLE.COMmatches the second document. The regex capture group{0}corresponds to the stringbob. The resulting output is the LDAP query"ou=dba,dc=example,dc=com??one?(user=bob)".mongodexecutes this query against the LDAP server, returning the result"cn=bob,ou=dba,dc=example,dc=com".If
--ldapUserToDNMappingis unset,mongodapplies 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
mongodusing thesetParameterdatabase command.
--ldapAuthzQueryTemplate <string>Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。A relative LDAP query URL formatted conforming to RFC4515 and RFC4516 that
mongodexecutes 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 transformedusername if ausername mappingis 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:
[ dn [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ]If your query includes an attribute,如果您的查询包含属性,mongodassumes that the query retrieves a the DNs which this entity is member of.mongod会假定该查询检索此实体所属的DN。If your query does not include an attribute,如果您的查询不包含属性,mongodassumes the query retrieves all entities which the user is member of.mongod会假设查询检索用户所属的所有实体。For each LDAP DN returned by the query,
mongodassigns the authorized user a corresponding role on theadmindatabase. If a role on the on theadmindatabase exactly matches the DN,mongodgrants the user the roles and privileges assigned to that role. See thedb.createRole()method for more information on creating roles.Example示例This LDAP query returns any groups listed in the LDAP user object's此LDAP查询返回LDAP用户对象的memberOfattribute.memberOf属性中列出的任何组。"{USER}?memberOf?base"Your LDAP configuration may not include theLDAP配置可能不包括memberOfattribute 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.memberOf属性作为用户架构的一部分,可能具有用于报告组成员资格的不同属性,或者可能不通过属性跟踪组成员资格。根据您自己的唯一LDAP配置配置您的查询。If unset,如果未设置,mongodcannot authorize users using LDAP.mongod将无法使用LDAP授权用户。This setting can be configured on a running
mongodusing thesetParameterdatabase command.
Storage Options存储选项
--storageEngine stringDefault:默认值:wiredTigerSpecifies the storage engine for the指定mongoddatabase. Available values include:mongod数据库的存储引擎。可用值包括:Value值Description描述wiredTigerTo specify the WiredTiger Storage Engine. inMemoryTo specify the In-Memory Storage Engine for Self-Managed Deployments.
Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。If you attempt to start a
mongodwith a--dbpaththat contains data files produced by a storage engine other than the one specified by--storageEngine,mongoddoesn't start.
--dbpath <path>Default:默认值:/data/dbon Linux and macOS,\data\dbon WindowsThe directory where the
mongodinstance stores its data.If using the default Configuration File included with a package manager installation of MongoDB, the corresponding
storage.dbPathsetting uses a different default.The files in
--dbpathmust correspond to the storage engine specified in--storageEngine. If the data files do not correspond to--storageEngine,mongoddoesn't start.
--directoryperdbUses a separate directory to store data for each database. The directories are under the
--dbpathdirectory, and each subdirectory name corresponds to the database name.Not available for
mongodinstances that use the in-memory storage engine.Starting in MongoDB 5.0, dropping the final collection in a database (or dropping the database itself) when
--directoryperdbis enabled deletes the newly empty subdirectory for that database.To change the
--directoryperdboption for existing deployments:For standalone instances:
- Use
mongodumpon the existingmongodinstance to generate a backup. - Stop the
mongodinstance. - Add the
--directoryperdbvalue and configure a new data directory - Restart the
mongodinstance. - Use
mongorestoreto populate the new data directory.
- Use
For replica sets:
- Stop a secondary member.
- Add the
--directoryperdbvalue and configure a new data directory to that secondary member. - Restart that secondary.
- Use initial sync to populate the new data directory.
- Update remaining secondaries in the same fashion.
- Step down the primary, and update the stepped-down member in the same fashion.
--syncdelay <value>Default:默认值:60Controls how much time can pass before MongoDB flushes data to the data files.
Do not set this value on production systems. In almost every situation, you should use the default setting.
The
mongodprocess writes data very quickly to the journal and lazily to the data files.--syncdelayhas no effect on journaling, but if--syncdelayis set to0the journal eventually consumes all available disk space.Not available for
mongodinstances that use the in-memory storage engine.To provide durable data, WiredTiger uses checkpoints. For more details, see Journaling and the WiredTiger Storage Engine.
--upgradeUpgrades the on-disk data format of the files specified by the
--dbpathto the latest version, if needed.This option only affects the operation of the
mongodif the data files are in an old format.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.
--repairRuns a repair routine on all databases for a
mongodinstance.Starting in 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 --repairif you have no other options. The operation removes and does not save any corrupt data during the repair process. Avoid running
--repairagainst a replica set member:- 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 --repairagainst 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 thedbpathdirectory. - If repair fails to complete for any reason, you must restart the instance using the
--repairoption.
--journalCommitInterval <value>Default:默认值:100The maximum amount of time in milliseconds that the
mongodprocess 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.On WiredTiger, the default journal commit interval is 100 milliseconds. A write that includes or implies
j:truecauses an immediate sync of the journal. For details and additional conditions that affect the frequency of the sync, see Journaling Process.Not available for
mongodinstances that use the in-memory storage engine.
WiredTiger Options
--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.Avoid increasing the WiredTiger internal cache size above its default value. If your use case requires to do so, you can use
--wiredTigerCacheSizePctto specify a percentage of up to 80% of available memory. Values can range from0.25GB to10000GB.The default WiredTiger internal cache size is the larger of either:
- 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.
To see the memory limit, see
hostInfo.system.memLimitMB.With WiredTiger, MongoDB utilizes both the WiredTiger internal cache and the filesystem cache.
With the filesystem cache, MongoDB automatically uses all free memory that is not used by the WiredTiger cache or by other processes.
Note
The
--wiredTigerCacheSizeGBlimits 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.To accommodate the additional consumers of RAM, you may have to decrease WiredTiger internal cache size.
The default WiredTiger internal cache size value assumes that there is a single
mongodinstance per machine. If a single machine contains multiple MongoDB instances, decrease the setting to accommodate the othermongodinstances.If you run
mongodin 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--wiredTigerCacheSizeGBto a value less than the amount of RAM available in the container. The exact amount depends on the other processes running in the container. SeememLimitMB.You can only provide one of either
--wiredTigerCacheSizeGBor--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.You can specify a percentage of up to 80% of available memory. Values range from
0.25GB to10000GB.The default WiredTiger internal cache size is the larger of either:
- 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.
To see the memory limit, see
hostInfo.system.memLimitMB.With WiredTiger, MongoDB utilizes both the WiredTiger internal cache and the filesystem cache.
With the filesystem cache, MongoDB automatically uses all free memory that is not used by the WiredTiger cache or by other processes.
Note
The
--wiredTigerCacheSizePctlimits 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.To accommodate the additional consumers of RAM, you may have to decrease WiredTiger internal cache size.
The default WiredTiger internal cache size value assumes that there is a single
mongodinstance per machine. If a single machine contains multiple MongoDB instances, decrease the setting to accommodate the othermongodinstances.If you run
mongodin 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--wiredTigerCacheSizePctto a value less than the amount of RAM available in the container. The exact amount depends on the other processes running in the container. SeememLimitMB.You can only provide one of either
--wiredTigerCacheSizePctor--wiredTigerCacheSizeGB.
--wiredTigerJournalCompressor <compressor>Default:默认值:snappySpecifies the type of compression to use to compress WiredTiger journal data.
Available compressors are:
--wiredTigerDirectoryForIndexesWhen you start
mongodwith--wiredTigerDirectoryForIndexes,mongodstores indexes and collections in separate subdirectories under the data (i.e.--dbpath) directory. Specifically,mongodstores the indexes in a subdirectory namedindexand the collection data in a subdirectory namedcollection.By using a symbolic link, you can specify a different location for the indexes. Specifically, when
mongodinstance is not running, move theindexsubdirectory to the destination and create a symbolic link namedindexunder the data directory to the new destination.
--wiredTigerCollectionBlockCompressor <compressor>Default:默认值:snappySpecifies the default compression for collection data. You can override this on a per-collection basis when creating collections.
Available compressors are:
--wiredTigerCollectionBlockCompressoraffects all collections created. If you change the value of--wiredTigerCollectionBlockCompressoron 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:默认值:trueEnables or disables prefix compression for index data.
Specify
truefor--wiredTigerIndexPrefixCompressionto enable prefix compression for index data, orfalseto disable prefix compression for index data.The
--wiredTigerIndexPrefixCompressionsetting affects all indexes created. If you change the value of--wiredTigerIndexPrefixCompressionon 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
oplogSizesetting 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.By default, the
mongodprocess creates an oplog based on the maximum amount of space available. For 64-bit systems, the oplog is typically 5% of available disk space.Once the
mongodhas created the oplog for the first time, changing the--oplogSizeoption doesn't affect the size of the oplog. To change the minimum oplog retention period after starting themongod, usereplSetResizeOplog.replSetResizeOplogenables you to resize the oplog dynamically without restarting themongodprocess. To persist the changes made usingreplSetResizeOplogthrough 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.5represents one hour and thirty minutes.The value must be greater than or equal to
0. A value of0indicates that themongodshould truncate the oplog starting with the oldest entries to maintain the configured maximum oplog size.Defaults to
0.A
mongodstarted with--oplogMinRetentionHoursonly removes an oplog entry if:- The oplog has reached the maximum configured oplog size and
- The oplog entry is older than the configured number of hours based on the host system clock.
The
mongodhas the following behavior when configured with a minimum oplog retention period:- 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.
- If the oplog grows beyond its maximum size, the
mongodmay continue to hold that disk space even if the oplog returns to its maximum size or is configured for a smaller maximum size. See Reducing Oplog Size Does Not Immediately Return Disk Space. - The
mongodcompares the system wall clock to an oplog entries creation wall clock time when enforcing oplog entry retention. Clock drift between cluster components may result in unexpected oplog retention behavior. See Clock Synchronization for more information on clock synchronization across cluster members.
To change the minimum oplog retention period after starting the
mongod, usereplSetResizeOplog.replSetResizeOplogenables you to resize the oplog dynamically without restarting themongodprocess. To persist the changes made usingreplSetResizeOplogthrough a restart, update the value of--oplogMinRetentionHours.
--enableMajorityReadConcernDefault:默认值:trueConfigures support for
"majority"read concern.Starting in MongoDB 5.0,
--enableMajorityReadConcerncannot be changed and is always set totrue. In earlier versions of MongoDB,--enableMajorityReadConcernwas configurable.Warning
If you are using a three-member primary-secondary-arbiter (PSA) architecture, consider the following:
- The write concern
"majority"can cause performance issues if a secondary is unavailable or lagging. For advice on how to mitigate these issues, see Mitigate Performance Issues with a Self-Managed PSA Replica Set. - If you are using a global default
"majority"and the write concern is less than the size of the majority, your queries may return stale (not fully replicated) data.
- The write concern
Sharded Cluster Options
--configsvrRequired if starting a config server.
Declares that this
mongodinstance 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 thanconfigandadmin. The default port for amongodwith this option is27019and the default--dbpathdirectory 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
mongodinstances as config servers (SCCC) is no longer supported.The replica set config servers (CSRS) must run the WiredTiger storage engine.
The
--configsvroption creates a local oplog.Do not use the
--configsvroption with--shardsvr. Config servers cannot be a shard server.Do not use the
--configsvrwith theskipShardingConfigurationChecksparameter. That is, if you are temporarily starting themongodas a standalone for maintenance operations, include the parameterskipShardingConfigurationChecksand exclude--configsvr. Once maintenance has completed, remove theskipShardingConfigurationChecksparameter and restart with--configsvr.
--shardsvrRequired if starting a shard server.
Configures this
mongodinstance as a shard in a sharded cluster. The default port for these instances is27018.Important
When starting a MongoDB server with
--shardsvr, you must also specify a--replSet.Do not use the
--shardsvrwith theskipShardingConfigurationChecksparameter. That is, if you are temporarily starting themongodas a standalone for maintenance operations, include the parameterskipShardingConfigurationChecksand exclude--shardsvr. Once maintenance has completed, remove theskipShardingConfigurationChecksparameter 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
--tlsModeoption can be one of the following:Value值Description描述disabledThe server does not use TLS. allowTLSConnections between servers do not use TLS. For incoming connections, the server accepts both TLS and non-TLS. preferTLSConnections between servers use TLS. For incoming connections, the server accepts both TLS and non-TLS. requireTLSThe server uses and accepts only TLS encrypted connections. If
--tlsCAFileortls.CAFileis not specified and you are not using X.509 authentication, you must set thetlsUseSystemCAparameter totrue. This makes MongoDB use the system-wide CA certificate store when connecting to a TLS-enabled server.If using X.509 authentication,
--tlsCAFileortls.CAFilemust be specified unless using--tlsCertificateSelector.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
--tlsCertificateKeyFile <filename>Specifies the
.pemfile that contains both the TLS certificate and key.On macOS or Windows, you can use the
--tlsCertificateSelectoroption to specify a certificate from the operating system's secure certificate store instead of a PEM key file.--tlsCertificateKeyFileand--tlsCertificateSelectoroptions are mutually exclusive. You can only specify one.- On Linux/BSD, you must specify
--tlsCertificateKeyFilewhen TLS/SSL is enabled. On Windows or macOS, you must specify either
--tlsCertificateKeyFileor--tlsCertificateSelectorwhen TLS/SSL is enabled.Important
For Windows only, MongoDB does not support encrypted PEM files. The
mongodfails to start if it encounters an encrypted PEM file. To securely store and access a certificate for use with TLS on Windows, use--tlsCertificateSelector.
For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .- On Linux/BSD, you must specify
--tlsCertificateKeyFilePassword <value>Specifies the password to decrypt the certificate-key file (i.e.
--tlsCertificateKeyFile). Use the--tlsCertificateKeyFilePasswordoption only if the certificate-key file is encrypted. In all cases, themongodredacts the password from all logging and reporting output.- On Linux/BSD, if the private key in the PEM file is encrypted and you do not specify the
--tlsCertificateKeyFilePasswordoption, MongoDB prompts for a passphrase. See TLS/SSL Certificate Passphrase. - On macOS, if the private key in the PEM file is encrypted, you must explicitly specify the
--tlsCertificateKeyFilePasswordoption. Alternatively, you can use a certificate from the secure system store (see--tlsCertificateSelector) instead of a PEM file or use an unencrypted PEM file. - On Windows, MongoDB does not support encrypted certificates. The
mongodfails if it encounters an encrypted PEM file. Use--tlsCertificateSelectorinstead.
For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .- On Linux/BSD, if the private key in the PEM file is encrypted and you do not specify the
--clusterAuthMode <option>Default:默认值:keyFileThe 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:
Value值Description描述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
--tlsCAFileortls.CAFileis not specified and you are not using X.509 authentication, you must set thetlsUseSystemCAparameter totrue. This makes MongoDB use the system-wide CA certificate store when connecting to a TLS-enabled server.If using X.509 authentication,
--tlsCAFileortls.CAFilemust be specified unless using--tlsCertificateSelector.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
--tlsClusterFile <filename>Specifies the
.pemfile 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
--tlsClusterCertificateSelectoroption to specify a certificate from the operating system's secure certificate store instead of a PEM key file.--tlsClusterFileand--tlsClusterCertificateSelectoroptions are mutually exclusive. You can only specify one.If
--tlsClusterFiledoes not specify the.pemfile for internal cluster authentication or the alternative--tlsClusterCertificateSelector, the cluster uses the.pemfile specified in the--tlsCertificateKeyFileoption or the certificate returned by the--tlsCertificateSelector.If using X.509 authentication,
--tlsCAFileortls.CAFilemust be specified unless using--tlsCertificateSelector.mongod/mongoslogs a warning on connection if the presented X.509 certificate expires within30days of themongod/mongoshost system time.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .Important
For Windows only, MongoDB does not support encrypted PEM files. The
mongodfails 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.Specifies a certificate property in order to select a matching certificate from the operating system's certificate store to use for TLS.指定证书属性,以便从操作系统的证书存储中选择匹配的证书用于TLS。The
--tlsCertificateKeyFileand--tlsCertificateSelectoroptions are mutually exclusive. You can only specify one.--tlsCertificateSelectoraccepts an argument of the format<property>=<value>where the property can be one of the following:Property属性Value type值类型Description描述subjectASCII string Subject 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摘要标识公钥。Thethumbprintis sometimes referred to as afingerprint.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(在线证书状态协议)用于验证证书的吊销状态。Themongodsearches 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不要使用--tlsCAFileor--tlsClusterCAFileto 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
rotateCertificatescommand or thedb.rotateCertificates()shell method when usingnet.tls.certificateSelectoror--tlsCertificateSelectorset tothumbprint
--tlsClusterCertificateSelector <parameter>=<value>-
Note
Available on Windows and macOS as an alternative to
--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成员身份验证。--tlsClusterFileand和--tlsClusterCertificateSelectoroptions are mutually exclusive. You can only specify one.选项是互斥的。您只能指定一个。--tlsClusterCertificateSelectoraccepts an argument of the format<property>=<value>where the property can be one of the following:Property属性Value type值类型Description描述subjectASCII string Subject 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摘要标识公钥。Thethumbprintis sometimes referred to as afingerprint.thumbprint有时被称为fingerprint。Themongodsearches 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--tlsCAFileor--tlsClusterCAFileto 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.
mongod/mongoslogs a warning on connection if the presented X.509 certificate expires within30days of themongod/mongoshost system time.
--tlsClusterPassword <value>Specifies the password to decrypt the X.509 certificate-key file specified with
--tlsClusterFile. Use the--tlsClusterPasswordoption only if the certificate-key file is encrypted. In all cases, themongodredacts the password from all logging and reporting output.- On Linux/BSD, if the private key in the X.509 file is encrypted and you do not specify the
--tlsClusterPasswordoption, MongoDB prompts for a passphrase. See TLS/SSL Certificate Passphrase. - On macOS, if the private key in the X.509 file is encrypted, you must explicitly specify the
--tlsClusterPasswordoption. Alternatively, you can either use a certificate from the secure system store (see--tlsClusterCertificateSelector) instead of a cluster PEM file or use an unencrypted PEM file. - On Windows, MongoDB does not support encrypted certificates. The
mongodfails if it encounters an encrypted PEM file. Use--tlsClusterCertificateSelectorinstead.
For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .- On Linux/BSD, if the private key in the X.509 file is encrypted and you do not specify the
--tlsCAFile <filename>Specifies the
.pemfile that contains the root certificate chain from the Certificate Authority. Specify the file name of the.pemfile using relative or absolute paths.Important
When starting a
mongodinstance with TLS/SSL enabled, you must specify a value for the--tlsCAFileflag, thenet.tls.CAFileconfiguration option, or thetlsUseSystemCAparameter.--tlsCAFile,tls.CAFile, andtlsUseSystemCAare all mutually exclusive.- Windows/macOS Only
- If using
--tlsCertificateSelectorand/or--tlsClusterCertificateSelector, do not use--tlsCAFileto specify the root and intermediate CA certificates. Store all CA certificates required to validate the full trust chain of the--tlsCertificateSelectorand/or--tlsClusterCertificateSelectorcertificates in the secure certificate store.
For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
--tlsClusterCAFile <filename>Specifies the
.pemfile 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.pemfile using relative or absolute paths.--tlsClusterCAFilerequires that--tlsCAFileis set.If
--tlsClusterCAFiledoes not specify the.pemfile for validating the certificate from a client establishing a connection, the cluster uses the.pemfile specified in the--tlsCAFileoption.--tlsClusterCAFilelets 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
--tlsCertificateSelectorand/or--tlsClusterCertificateSelector, do not use--tlsClusterCAFileto specify the root and intermediate CA certificates. Store all CA certificates required to validate the full trust chain of the--tlsCertificateSelectorand/or--tlsClusterCertificateSelectorcertificates in the secure certificate store.
For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
--tlsCRLFile <filename>Specifies the
.pemfile that contains the Certificate Revocation List. Specify the file name of the.pemfile using relative or absolute paths.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. See
--tlsCertificateSelectorto use the system SSL certificate store. - To check for certificate revocation, MongoDB
enablesthe use of OCSP (Online Certificate Status Protocol) by default as an alternative to specifying a CRL file or using the system SSL certificate store.
For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .- 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. See
--tlsAllowInvalidCertificatesBypasses the validation checks for TLS certificates on other servers in the cluster and allows the use of invalid certificates to connect.
Note
If you specify
--tlsAllowInvalidCertificatesortls.allowInvalidCertificates: truewhen using X.509 authentication, an invalid certificate is only sufficient to establish a TLS connection but is insufficient for authentication.When using the
--tlsAllowInvalidCertificatessetting, MongoDB logs a warning regarding the use of the invalid certificate.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
--tlsAllowInvalidHostnamesDisables 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
mongodto 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
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .
--tlsAllowConnectionsWithoutCertificatesBy 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:
- For clients that don't provide certificates,
mongodormongosencrypts the TLS/SSL connection, assuming the connection is successfully made. - For clients that present a certificate,
mongodperforms certificate validation using the root certificate chain specified by--tlsCAFileand reject clients with invalid certificates.
Use the
--tlsAllowConnectionsWithoutCertificatesoption if you have a mixed deployment that includes clients that do not or cannot present certificates to themongod.For more information about TLS and MongoDB, see Configure
mongodandmongosfor TLS/SSL on Self-Managed Deployments and TLS/SSL Configuration for Clients .- For clients that don't provide certificates,
--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.
--tlsDisabledProtocolsrecognizes the following protocols:TLS1_0,TLS1_1,TLS1_2, andTLS1_3.- On macOS, you cannot disable
TLS1_1and leave bothTLS1_0andTLS1_2enabled. 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
noneto--tlsDisabledProtocols.Members of replica sets and sharded clusters must speak at least one protocol in common.
- On macOS, you cannot disable
--tlsFIPSModeDirects the
mongodto use the FIPS mode of the TLS library. Your system must have a FIPS compliant library to use the--tlsFIPSModeoption.Note
FIPS-compatible TLS/SSL is available only in MongoDB Enterprise. See Configure MongoDB for FIPS for more information.
Profiler Options
--profile <level>Default:默认值:0Configures 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.
1The profiler collects data for operations that exceed the
slowmsthreshold or match a specified filter.When a filter is set:
- The
slowmsandsampleRateoptions are not used for profiling. - The profiler only captures operations that match the filter.
- The
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.
--slowms <integer>Default:默认值:100The 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.When
logLevelis set to0, MongoDB records slow operations to the diagnostic log at a rate determined byslowOpSampleRate.At higher
logLevelsettings, 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 thelogLeveldoes not log all oplog entries.For
mongodinstances,--slowmsaffects the diagnostic log and, if enabled, the profiler.
--slowOpSampleRate <double>Default:默认值:1.0The fraction of slow operations that should be profiled or logged.
--slowOpSampleRateaccepts values between 0 and 1, inclusive.--slowOpSampleRatedoes 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
mongodinstances,--slowOpSampleRateaffects the diagnostic log and, if enabled, the profiler.
Audit Options
--auditCompressionModeNew in version 5.3.在版本5.3中新增。Specifies the compression mode for audit log encryption. You must also enable audit log encryption using either
--auditEncryptionKeyUIDor--auditLocalKeyFile.--auditCompressionModecan be set to one of these values:Value值Description描述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.
--auditDestinationEnables auditing and specifies where
mongodsends all audit events.--auditDestinationcan have one of the following values:Value值Description描述syslogOutput the audit events to syslog in JSON format. Not available on Windows. Audit messages have a syslog severity level of
infoand a facility level ofuser.The syslog message limit can result in the truncation of audit messages. The auditing system neither detects the truncation nor errors upon its occurrence.
consoleOutput the audit events to stdoutin JSON format.fileOutput the audit events to the file specified in --auditPathin the format specified in--auditFormat.Note
Available only in MongoDB Enterprise and MongoDB Atlas.
--auditEncryptionKeyUIDNew 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
--auditEncryptionKeyUIDand--auditLocalKeyFiletogether.Note
Available only in MongoDB Enterprise. MongoDB Enterprise and Atlas have different configuration requirements.
--auditFormatSpecifies the format of the output file for auditing if
--auditDestinationisfile. The--auditFormatoption can have one of the following values:Value值Description描述JSONOutput the audit events in JSON format to the file specified in --auditPath.BSONOutput the audit events in BSON binary format to the file specified in --auditPath.Printing audit events to a file in JSON format degrades server performance more than printing to a file in BSON format.
Note
Available only in MongoDB Enterprise and MongoDB Atlas.
--auditLocalKeyFileNew 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
--auditLocalKeyFilefor testing because the key is not secured. To secure the key, use--auditEncryptionKeyUIDand an external Key Management Interoperability Protocol (KMIP) server.You cannot use
--auditLocalKeyFileand--auditEncryptionKeyUIDtogether.Note
Available only in MongoDB Enterprise. MongoDB Enterprise and Atlas have different configuration requirements.
--auditPathSpecifies the output file for auditing if
--auditDestinationhas value offile. The--auditPathoption can take either a full path name or a relative path name.Note
Available only in MongoDB Enterprise and MongoDB Atlas.
--auditFilterSpecifies 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.
Note
Available only in MongoDB Enterprise and MongoDB Atlas.
--auditSchemaDefault:默认值:mongoNew in version 8.0.在版本8.0中新增。Specifies the format used for audit logs. You can specify one of the following values for
--auditSchema:Value值Description描述mongoLogs are written in a format designed by MongoDB.
For example log messages, see mongo Schema Audit Messages.
OCSFLogs 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 Options
--inMemorySizeGB <float>Default:默认值:50% of physical RAM minus 1 GB.Maximum amount of memory to allocate for the in-memory storage engine data, including indexes, the oplog (if the
mongodis part of a replica set), sharded cluster metadata, etc.Values can range from 256MB to 10TB and can be a float.
By default, the in-memory storage engine uses 50% of physical RAM minus 1 GB.
Note
Enterprise Feature企业版特性Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。
Encryption Key Management Options
--enableEncryptionDefault:默认值:falseEnables 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-CBCThe cipher mode to use for encryption at rest:用于静态加密的密码模式:Mode Description描述AES256-CBC256-bit Advanced Encryption Standard in Cipher Block Chaining Mode密码块链模式下的256位高级加密标准AES256-GCM256-bit Advanced Encryption Standard in Galois/Counter Mode伽罗瓦/计数器模式下的256位高级加密标准Available only on Linux.仅在Linux上可用。MongoDB Enterprise on Windows no longer supportsWindows上的MongoDB Enterprise不再支持AES256-GCMas a block cipher for encryption at rest. This usage is only supported on Linux.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.
The keyfile can contain only a single key. The key is either a 16 or 32 character string.
Requires
--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您只能在第一次为mongodinstance. 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:默认值:falseIf 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.You can specify multiple KMIP servers as a comma-separated list, for example:
server1.example.com,server2.example.com. On startup, themongodattempts 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.When connecting to a KMIP server, the
mongodverifies that the specified--kmipServerNamematches the Subject Alternative NameSAN(or, ifSANis not present, the Common NameCN) in the certificate presented by the KMIP server. IfSANis present,mongoddoes not match against theCN. If the hostname does not match theSAN(orCN), themongodfails to connect.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.
Note
Enterprise Feature企业版特性Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。
--kmipPort <number>Default:默认值:5696Port number to use to communicate with the KMIP server. Requires
--kmipServerName. Requires--enableEncryption.If specifying multiple KMIP servers with
--kmipServerName, themongoduses the port specified with--kmipPortfor all provided KMIP servers.Note
Enterprise Feature企业版特性Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。
--kmipConnectRetries <number>Default:默认值:0How many times to retry the initial connection to the KMIP server. Use together with
--kmipConnectTimeoutMSto control how long themongodwaits for a response between each retry.Note
Enterprise Feature企业版特性Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。
--kmipConnectTimeoutMS <number>Default:默认值:5000Timeout in milliseconds to wait for a response from the KMIP server. If the
--kmipConnectRetriessetting is specified, themongodwaits for the specified interval between retries.Value must be
1000or greater.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.--kmipClientCertificateFileand--kmipClientCertificateSelectoroptions 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.
--kmipClientCertificateSelectoraccepts an argument of the format<property>=<value>where the property can be one of the following:Property属性Value type值类型Description描述subjectASCII string Subject 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.
The
thumbprintis sometimes referred to as afingerprint.Note
Enterprise Feature企业版特性Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。
--kmipClientCertificateFile <string>Path to the
.pemfile used to authenticate MongoDB to the KMIP server. The specified.pemfile must contain both the TLS/SSL certificate and key.To use this option, you must also specify the
--kmipServerNameoption.Important
Enabling encryption using a KMIP server on Windows fails when using
--kmipClientCertificateFileand the KMIP server enforces TLS 1.2.To enable encryption at rest with KMIP on Windows, you must:
- Import the client certificate into the Windows Certificate Store.
- Use the
--kmipClientCertificateSelectoroption.
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.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解密连接到KMIP服务器的客户端证书私钥的密码。此选项向KMIP服务器验证MongoDB,并要求您提供--kmipClientCertificateFile.--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.
--kmipActivateKeys <boolean>Default:默认值:trueNew 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
--kmipActivateKeysistrueand you have existing keys on a KMIP server, the key must be activated first or themongodnode fails to start.If the key being used by the mongod transitions into a non-active state, the
mongodnode shuts down unlesskmipActivateKeysis false. To ensure you have an active key, rotate the KMIP master key by using--kmipRotateMasterKey.
--kmipKeyStatePollingSeconds <integer>Default:默认值:900 secondsNew in version 5.3.在版本5.3中新增。Frequency in seconds at which
mongodpolls the KMIP server for active keys.To disable disable polling, set the value to
-1.
--kmipUseLegacyProtocol <boolean>Default:默认值:falseNew in version 7.0.在版本7.0中新增。 (and 6.0.6)When
true,mongoduses KMIP protocol version 1.0 or 1.1 instead of the default version. The default KMIP protocol is version 1.2.To use audit log encryption with KMIP version 1.0 or 1.1, you must specify
auditEncryptKeyWithKMIPGetat startup.
--eseDatabaseKeyRolloverRoll over the encrypted storage engine database keys configured with
AES256-GCMcipher.When当使用此选项启动mongodinstance is started with this option, the instance rotates the keys and exits.mongod实例时,实例会旋转键并退出。Note
Enterprise Feature企业版特性Available in MongoDB Enterprise only.仅在MongoDB企业版中可用。