数据库:MongoDB命令行帮助解释
MongoDB命令:
- mongod
- mongos
- mongo
- perror
- mongoexport
- mongofiles
- mongoimport
- mongorestore
- Mongostat
MongoDB包中的核心组件包括:
- mongod 是 MongoDB 的核心服务器进程,负责数据存储和管理。
- mongos 是分片集群的路由进程,负责将请求路由到正确的分片并聚合结果。
- mongo 是 MongoDB 的交互式 shell,用于与数据库进行交互和管理。(6.0之后安装包就默认不包含这个了,由mongosh取代了mongo,并且需要自己额外下载一个mongodb shell)
下面是 MongoDB 启动时可以配置的命令行参数,用于调整其行为、性能、安全性等方面。下面对各个选项进行解释:
mongod:
首先,我们来看通用选项:
-
-h [ --help ]
:这个选项非常直观,用于显示帮助信息。当你不确定某个命令的作用时,这个选项可以提供详细的使用说明。 -
--version
:这个选项用于显示程序的版本信息,有助于确认你正在使用的是哪个版本,特别是在需要特定功能或进行故障排除时。 -
-f [ --config ] arg
:这个选项允许你指定一个配置文件。配置文件中可以包含其他命令行选项,这样就不必每次都手动输入这些选项,非常方便。 -
-v [ --verbose ] [=arg(=v)]
:这个选项用于增加输出的详细程度。你可以多次使用这个选项(如-vvvvv
)来获得更详细的输出,这对于调试或了解程序的内部工作非常有帮助。 -
--quiet
:与--verbose
相反,这个选项减少输出,使程序运行时更加安静。在不需要详细日志的情况下,这个选项非常有用。 -
--port arg
:这个选项用于指定程序监听的端口号。默认端口是27017,但你可以根据需要进行更改,特别是在有端口冲突或运行多个实例时。 -
--bind_ip arg
:这个选项允许你指定一个或多个IP地址,程序将只监听这些IP地址的连接。默认情况下,它只监听localhost,这对于提高安全性非常有帮助。 -
--bind_ip_all
:这个选项使程序绑定到所有可用的IP地址。这在你希望程序接受来自任何网络接口的连接时非常有用,但也意味着程序对所有网络都是可见的,因此需要谨慎使用。 -
--ipv6
:这个选项用于启用IPv6支持。默认情况下,IPv6是禁用的,但如果你的网络环境需要IPv6,这个选项可以确保程序正确地处理IPv6地址。 -
--listenBacklog arg (=2147483647)
:这个选项设置socket监听队列的大小。它决定了在连接被接受之前,可以有多少连接请求等待。默认值非常大,这在大多数情况下是合适的,但在资源受限的系统上可能需要调整。 -
--maxConns arg
:这个选项设置程序可以同时处理的最大连接数。默认值是1,000,000,这在大多数情况下已经足够,但在高流量环境中可能需要调整。 -
--logpath arg
:这个选项指定日志文件的路径。而不是将日志输出到标准输出,程序将日志写入指定的文件,这对于生产环境中的日志记录非常有用。 -
--logappend
:这个选项使程序将日志追加到指定的日志文件,而不是每次覆盖它。这确保了日志的连续性,有助于故障排除和审查。 -
--logRotate arg
:这个选项设置日志轮换的行为。你可以选择rename
或reopen
,这决定了当日志文件达到一定大小或在重新启动时如何处理日志文件。 -
--timeStampFormat arg
:这个选项允许你选择日志消息中时间戳的格式。选项有ctime
、iso8601-utc
或iso8601-local
,这有助于根据你的时区或格式偏好来解析日志。 -
--pidfilepath arg
:这个选项指定PID文件的完整路径。PID文件用于跟踪主进程的进程ID,这对于管理程序的生命周期非常有用,特别是在使用init系统时。 -
--timeZoneInfo arg
:这个选项指定时区信息的完整路径,例如/usr/share/zoneinfo
。这确保了程序使用正确的时区数据,特别是在处理时间相关的功能时。 -
--keyFile arg
:这个选项用于指定用于集群身份验证的私钥文件。它对于确保集群内部的安全通信至关重要,特别是在生产环境中。 -
--noauth
:这个选项使程序在没有安全身份验证的情况下运行。虽然这在开发或测试环境中可能方便,但在生产环境中不建议使用,因为它会降低安全性。 -
--setParameter arg
:这个选项允许你设置一个可配置的参数。这可以包括各种内部设置,具体取决于程序的配置选项。 -
--transitionToAuth
:这个选项用于在滚动升级过程中身份验证。它尝试在出站连接上进行身份验证,并且无论成功与否都继续进行,同时接受带有或不带有身份验证的传入连接。 -
--clusterAuthMode arg
:这个选项设置用于集群身份验证的模式。选项包括keyFile
、sendKeyFile
、sendX509
或x509
,具体取决于你希望使用的安全方法。 -
--networkMessageCompressors [=arg(=disabled)] (=snappy)
:这个选项指定用于网络消息的压缩器。默认情况下,它使用snappy
进行压缩,但你可以根据需要禁用它或选择其他压缩器。 -
--auth
:这个选项使程序在有安全身份验证的情况下运行。它确保只有经过身份验证的用户才能访问程序,这对于生产环境中的安全至关重要。 -
--clusterIpSourceWhitelist arg
:这个选项指定一个网络CIDR,定义了允许对__system
进行访问的源。这是一个安全措施,确保只有可信的网络可以进行某些管理操作。 -
--slowms arg (=100)
:这个选项设置被认为是慢操作的阈值(以毫秒为单位)。慢操作将被记录在日志中,这对于性能监控和优化非常有用。 -
--slowOpSampleRate arg (=1)
:这个选项设置慢操作被包含在日志中的频率。默认情况下,所有慢操作都会被记录,但你可以根据需要进行调整以减少日志的详细程度。 -
--profile arg
:这个选项设置剖析级别。你可以将其设置为0
(关闭)、1
(仅慢操作)或2
(所有操作)。剖析有助于识别性能瓶颈。 -
--cpu
:这个选项使程序定期显示CPU和IO等待利用率。这有助于监控程序的性能。 -
--sysinfo
:这个选项打印一些诊断系统信息。它可以在故障排除或了解系统状态时提供帮助。 -
--noIndexBuildRetry
:这个选项防止程序重新尝试因关闭而中断的索引构建。这在你希望管理索引构建过程时非常有用。 -
--noscripting
:这个选项禁用脚本引擎。如果不需要脚本功能,禁用它可以提高性能。 -
--notablescan
:这个选项防止表扫描。如果希望强制使用索引以提高查询性能,这非常有用。
接下来是Windows服务控制管理器选项:
-
--install
:这个选项将程序安装为Windows服务。它在你希望程序作为服务在后台运行时非常有用。 -
--remove
:这个选项从系统中移除安装的Windows服务。它在你不再需要服务或需要更新它时非常有用。 -
--reinstall
:这个选项重新安装Windows服务。它相当于先移除再安装,确保服务的配置是最新的。 -
--serviceName arg
:这个选项指定安装的Windows服务的名称。它有助于识别和管理多个服务。 -
--serviceDisplayName arg
:这个选项设置服务的显示名称。它在用户界面中更易读,有助于识别服务。 -
--serviceDescription arg
:这个选项提供服务的描述。它有助于解释服务的作用,特别是在管理控制台中。 -
--serviceUser arg
:这个选项指定服务执行的用户账户。它需要具有运行服务所需的适当权限。 -
--servicePassword arg
:这个选项指定用于身份验证serviceUser
的密码。它确保服务可以正确地进行身份验证。
现在是复制选项:
--oplogSize arg
:这个选项设置复制操作日志的大小(以MB为单位)。操作日志用于在副本集成员之间同步数据。默认情况下,它是磁盘空间的5%,但你可以根据需要进行调整。
接下来是主从复制选项(已弃用,建议使用副本集):
-
--master
:这个选项使程序在主模式下运行。主服务器可以接受写操作,并将这些操作复制到从服务器。 -
--slave
:这个选项使程序在从模式下运行。从服务器复制主服务器的操作,但不接受写操作。 -
--source arg
:这个选项指定主服务器的地址(<server:port>
),从服务器应从该地址复制数据。 -
--only arg
:这个选项指定从服务器应复制的单个数据库。它限制了复制到特定的数据集。 -
--slavedelay arg
:这个选项设置从服务器应用主服务器操作的延迟(以秒为单位)。它有助于减轻主服务器的负载或管理数据的延迟。 -
--autoresync
:这个选项使从服务器在数据过时或与主服务器不同步时自动重新同步。它确保从服务器保持最新的数据。
接下来是副本集选项:
-
--replSet arg
:这个选项指定副本集的名称和可选的种子主机列表。副本集是一组维护相同数据集的服务器,提供高可用性和数据冗余。 -
--replIndexPrefetch arg
:这个选项设置索引预取行为。选项包括none
、_id_only
或all
,影响副本集成员如何预取索引以提高性能。 -
--enableMajorityReadConcern [=arg(=1)]
:这个选项启用多数读关注。它确保读操作反映了大多数副本集成员的写操作,提供了强一致性。
接下来是分片选项:
-
--configsvr
:这个选项声明程序是分片集群的配置服务器。它使用默认端口27019,并将数据存储在/data/configdb
中。 -
--shardsvr
:这个选项声明程序是分片集群的分片服务器。它使用默认端口27018,并处理分片数据。
现在是SSL选项:
-
--sslOnNormalPorts
:这个选项在配置的端口上使用SSL。它确保数据在传输过程中加密,提高了通信的安全性。 -
--sslMode arg
:这个选项设置SSL操作模式。选项包括disabled
、allowSSL
、preferSSL
或requireSSL
,具体取决于你的安全要求。 -
--sslPEMKeyFile arg
:这个选项指定包含SSL证书和私钥的PEM文件。它用于服务器的SSL身份验证。 -
--sslPEMKeyPassword arg
:这个选项指定PEM文件的密码。它确保PEM文件的访问是安全的。 -
--sslClusterFile arg
:这个选项用于内部SSL身份验证的密钥文件。它确保集群内部的通信是安全的。 -
--sslClusterPassword arg
:这个选项指定用于身份验证sslClusterFile
的密码。它确保只有具有正确密码的服务器才能加入集群。 -
--sslCAFile arg
:这个选项指定用于SSL的证书颁发机构(CA)文件。它用于验证服务器的SSL证书。 -
--sslClusterCAFile arg
:这个选项指定用于验证远程服务器的CA,适用于出站连接。它确保连接到的服务器是可信的。 -
--sslCRLFile arg
:这个选项指定SSL证书吊销列表(CRL)文件。它用于确保不会接受已吊销的证书。 -
--sslDisabledProtocols arg
:这个选项指定要禁用的TLS协议的逗号分列表(例如TLS1_0,TLS1_1,TLS1_2
)。它有助于强制使用更安全的协议。 -
--sslWeakCertificateValidation
:这个选项允许服务器在没有有效证书的情况下连接,但不建议用于生产环境,因为它会降低安全性。 -
--sslAllowConnectionsWithoutCertificates
:这个选项允许没有证书的连接,但不建议用于生产环境,因为它会降低安全性。 -
--sslAllowInvalidHostnames
:这个选项允许服务器证书提供不匹配的主机名,但不建议用于生产环境,因为它会降低安全性。 -
--sslAllowInvalidCertificates
:这个选项允许连接到具有无效证书的服务器,但不建议用于生产环境,因为它会降低安全性。 -
--sslFIPSMode
:这个选项在启动时激活FIPS 140-2模式,确保使用符合FIPS标准的加密。
最后是存储选项:
-
--storageEngine arg
:这个选项指定要使用的存储引擎。默认情况下,如果不存在数据文件,它使用wiredTiger
,但你可以根据需要选择其他引擎。 -
--dbpath arg
:这个选项指定数据文件的目录。默认情况下,它使用/data/db
,但你可以根据需要进行调整。 -
--directoryperdb
:这个选项使每个数据库存储在单独的目录中。它有助于组织和管理大型或多个数据库。 -
--noprealloc
:这个选项禁用数据文件的预分配。虽然这可能会减少磁盘使用,但可能会导致更频繁的磁盘I/O,从而影响性能。 -
--nssize arg (=16)
:这个选项设置新数据库的.ns
文件大小(以MB为单位)。它影响命名空间的组织。 -
--quota
:这个选项限制每个数据库可以使用的文件数量(默认为8)。它有助于防止单个数据库消耗过多的磁盘空间。 -
--quotaFiles arg
:这个选项设置每个数据库允许的文件数量,意味着--quota
。它确保每个数据库在磁盘使用上有明确的限制。 -
--smallfiles
:这个选项使用较小的默认文件大小。它在磁盘空间有限或处理较小数据库时非常有用。 -
--syncdelay arg (=60)
:这个选项设置磁盘同步的秒数。较低的值可以提高数据的持久性,但可能会降低性能。 -
--upgrade
:这个选项在需要时升级数据库。它确保数据格式是最新的,与程序的当前版本兼容。 -
--repair
:这个选项对所有数据库运行修复操作。它在检测到数据损坏或不一致时非常有用。 -
--repairpath arg
:这个选项指定修复文件的根目录。它用于在运行修复操作时存储临时数据。 -
--journal
:这个选项启用日志。日志有助于确保在系统故障后恢复数据的一致性。 -
--nojournal
:这个选项禁用日志。虽然这可能会提高性能,但会增加数据损坏的风险。 -
--journalOptions arg
:这个选项设置日志的诊断选项。具体选项取决于程序的内部配置。 -
--journalCommitInterval arg
:这个选项设置将写操作分组并提交到日志的频率(以毫秒为单位)。较低的值可以提高数据的持久性,但可能会降低性能。
最后是WiredTiger选项:
-
--wiredTigerCacheSizeGB arg
:这个选项设置WiredTiger缓存的最大大小(以GB为单位)。它影响存储在内存中的数据量,从而影响性能。 -
--wiredTigerJournalCompressor arg (=snappy)
:这个选项设置用于日志记录的压缩器。默认情况下,它使用snappy
,但你可以根据需要选择其他压缩器。 -
--wiredTigerDirectoryForIndexes
:这个选项将索引和数据放在不同的目录中。它有助于管理存储布局,特别是在需要将索引和数据分开的存储系统上。 -
--wiredTigerCollectionBlockCompressor arg (=snappy)
:这个选项设置用于集合数据的块压缩器。默认情况下,它使用snappy
,但你可以根据需要选择其他压缩器。 -
--wiredTigerIndexPrefixCompression arg (=1)
:这个选项在行存储的叶页上使用前缀压缩。它有助于减少索引的存储空间。
mongos:
网络消息压缩器
--networkMessageCompressors arg (=snappy,zstd,zlib)
设置用于网络消息的压缩算法。多个算法可以用逗号分隔,例如snappy,zstd,zlib
。这些压缩算法用于减少网络流量。
常规选项
-
-h [ --help ]
显示帮助信息。 -
--version
显示当前 MongoDB 版本信息。 -
-f [ --config ] arg
指定配置文件,可以从文件加载额外的配置选项。 -
--configExpand arg
处理配置文件中的扩展指令(如:none
,exec
,rest
)。 -
--port arg
指定 MongoDB 监听的端口,默认是 27017。 -
--ipv6
启用 IPv6 支持,默认为禁用。 -
--listenBacklog arg (=2147483647)
设置套接字监听的最大排队大小。 -
--maxConns arg (=1000000)
设置允许的最大并发连接数。 -
--pidfilepath arg
指定进程 ID 文件的完整路径。如果没有设置,则不会创建 pid 文件。 -
--timeZoneInfo arg
指定时区信息目录的路径(例如:/usr/share/zoneinfo
)。 -
-v [ --verbose ] [=arg(=v)]
提高输出的详细程度(可以重复使用-v
增加详细度)。 -
--quiet
使输出更为简洁。 -
--logpath arg
指定日志文件路径。MongoDB 会将日志写入指定的文件,而不是输出到标准输出。 -
--logappend
使日志追加到指定日志文件,而不是覆盖。 -
--logRotate arg
设置日志旋转行为(rename
或reopen
)。 -
--timeStampFormat arg
设置日志中的时间戳格式。可以选择iso8601-utc
或iso8601-local
。 -
--setParameter arg
设置可配置的参数。 -
--keyFile arg
集群身份验证使用的私钥文件路径。 -
--clusterAuthMode arg
集群身份验证模式。可选值有keyFile
,sendKeyFile
,sendX509
,x509
。 -
--bind_ip arg
绑定的 IP 地址列表(逗号分隔),默认为localhost
。 -
--bind_ip_all
绑定到所有 IP 地址。 -
--noauth
禁用身份验证,允许无认证访问。 -
--transitionToAuth
在进行访问控制升级时使用。允许部分连接通过认证,其他连接不进行认证。 -
--slowms arg (=100)
设置查询慢日志的阈值(以毫秒为单位)。 -
--slowOpSampleRate arg (=1)
设置慢操作采样率。表示多少比例的慢操作会被记录。 -
--profileFilter arg
用于控制哪些操作会被记录在性能日志中。 -
--upgradeBackCompat
表示当前是升级过程的一部分。不会使用旧版本不支持的功能。 -
--downgradeBackCompat
表示当前是降级过程的一部分。不会使用新版本不支持的功能。
分片选项
-
--configdb arg
配置副本集连接字符串,用于与配置服务器通信。格式:<config replset name>/<host1:port>,<host2:port>,...
。 -
--localThreshold arg
设置节点被认为是本地的最大 ping 时间(以毫秒为单位)。默认是 15ms。 -
--test
运行单元测试。 -
--noscripting
禁用脚本引擎。
AWS IAM 选项
--awsIamSessionToken arg
用于临时凭证的 AWS Session Token。
Windows 服务管理选项
-
--install
安装 MongoDB 为 Windows 服务。 -
--remove
删除 MongoDB 的 Windows 服务。 -
--reinstall
重新安装 Windows 服务,相当于先移除再安装。 -
--serviceName arg
设置 Windows 服务的名称。 -
--serviceDisplayName arg
设置 Windows 服务的显示名称。 -
--serviceDescription arg
设置 Windows 服务的描述。 -
--serviceUser arg
设置用于运行服务的用户账号。 -
--servicePassword arg
设置用于认证服务用户的密码。
TLS 选项
-
--tlsOnNormalPorts
启用 TLS 对常规端口的支持。 -
--tlsMode arg
设置 TLS 操作模式。可选值:disabled
,allowTLS
,preferTLS
,requireTLS
。 -
--tlsCertificateKeyFile arg
指定用于 TLS 的证书和密钥文件路径。接收到的连接会始终使用该证书,若没有指定tlsClusterFile
,出站连接也会使用该证书。 -
--tlsCertificateKeyFilePassword arg
解锁 TLS 证书密钥文件的密码。 -
--tlsClusterFile arg
内部 TLS 认证的证书和密钥文件。 -
--tlsClusterPassword arg
内部认证密钥文件的密码。 -
--tlsCAFile arg
用于验证远程证书的证书颁发机构(CA)文件。也用于验证入站连接的远程证书。 -
--tlsClusterCAFile arg
用于验证入站连接的远程证书的 CA 文件。 -
--tlsCRLFile arg
用于验证证书撤销的证书撤销列表(CRL)文件。 -
--tlsDisabledProtocols arg
禁用的 TLS 协议列表(如:TLS1_0,TLS1_1,TLS1_2,TLS1_3
)。 -
--tlsAllowConnectionsWithoutCertificates
允许客户端连接时不提供证书。 -
--tlsAllowInvalidHostnames
允许服务器证书提供不匹配的主机名。 -
--tlsAllowInvalidCertificates
允许与具有无效证书的服务器建立连接。 -
--tlsCertificateSelector arg
从系统存储中选择 TLS 证书。 -
--tlsClusterCertificateSelector arg
从系统存储中选择用于内部 TLS 认证的 SSL/TLS 证书。 -
--tlsLogVersions arg
连接时记录的 TLS 协议版本(如:TLS1_0,TLS1_1,TLS1_2,TLS1_3
)。 -
--tlsClusterAuthX509ExtensionValue arg
用于集群身份验证的 X.509 扩展值。客户端必须提供包含此值的 X.509 扩展才能被视为集群成员。 -
--tlsClusterAuthX509Attributes arg
X.509 认证时,客户端必须提供与给定属性和值完全匹配的证书,才能被视为集群节点。
mongo
首先,我们来看数据库地址部分。这部分描述了如何指定要连接的 MongoDB 数据库。有几种不同的方法:
-
foo:这表示在本地机器上的
foo
数据库。因此,如果 MongoDB 服务器运行在默认端口上,mongo foo
就会连接到本地的foo
数据库。 -
192.168.0.5/foo:这里,
192.168.0.5
是 MongoDB 服务器的 IP 地址,foo
是数据库的名称。因此,mongo 192.168.0.5/foo
会连接到位于192.168.0.5
的foo
数据库。 -
192.168.0.5:9999/foo:这与前一个类似,但指定了一个非默认端口
9999
。因此,mongo 192.168.0.5:9999/foo
会连接到位于192.168.0.5
的9999
端口上的foo
数据库。
接下来,我们来看选项部分。这里有许多不同的选项,我将逐一解析:
-
--shell
:在执行文件后启动 shell。因此,如果你有一个包含 MongoDB 命令的文件,可以使用这个选项在执行后进入交互式 shell。 -
--nodb
:启动 MongoDB 时不连接到任何数据库。这意味着你不需要在启动时指定数据库地址,但稍后需要手动连接。 -
--norc
:启动时不运行~/.mongorc.js
文件。这个文件通常包含启动时自动执行的 MongoDB 命令,因此使用这个选项可以跳过这些自定义设置。 -
--quiet
:减少输出的详细程度。这在你不需要看到所有日志信息时非常有用,使界面更加简洁。 -
--port arg
:指定要连接的端口号。例如,--port 27017
会连接到 MongoDB 的默认端口。 -
--host arg
:指定要连接的服务器的主机名或 IP 地址。例如,--host 192.168.0.5
会连接到该 IP 地址的 MongoDB 服务器。 -
--eval arg
:在 MongoDB shell 中评估 JavaScript 代码。例如,--eval "db.collection.find()"
会执行该查询。 -
-h [ --help ]
:显示使用信息。这在你忘记某个选项的含义或需要快速参考时非常有用。 -
--version
:显示 MongoDB shell 的版本。这在需要确认你正在使用的版本时非常有用,特别是在处理兼容性问题时。 -
--verbose
:增加详细程度。如果你需要看到更多关于 MongoDB shell 正在做什么的信息,这个选项可以提供帮助。 -
--ipv6
:启用 IPv6 支持。默认情况下,MongoDB shell 使用 IPv4,因此如果需要连接到 IPv6 地址的服务器,需要使用这个选项。 -
--disableJavaScriptJIT
:禁用 JavaScript 的即时编译。这可能会影响 shell 中 JavaScript 代码的执行性能,但在某些情况下可能需要。 -
--disableJavaScriptProtection
:允许自动 marshalling JavaScript 函数。这在你有特定的 JavaScript 函数需要在 shell 中使用时非常有用。 -
--ssl
:使用 SSL 连接。这确保了数据在 MongoDB shell 和服务器之间的传输是加密的,增加了安全性。 -
--sslCAFile arg
:指定包含证书颁发机构(CA)证书的文件,用于验证服务器的 SSL 证书。这对于确保你连接到的是正确的服务器至关重要。 -
--sslPEMKeyFile arg
:指定包含 PEM 格式的证书和密钥的文件,用于 client SSL 身份验证。这在需要向服务器提供 client 证书时非常有用。 -
--sslPEMKeyPassword arg
:指定用于解密--sslPEMKeyFile
中密钥的密码。这在密钥是加密的,需要密码才能访问时非常有用。 -
--sslCRLFile arg
:指定包含证书吊销列表(CRL)的文件,用于验证服务器的 SSL 证书是否被吊销。这增加了额外的安全层。 -
--sslAllowInvalidHostnames
:允许连接到主机名不匹配证书的服务器。这在使用自签名证书或在开发环境中时非常有用,但不建议在生产环境中使用。 -
--sslAllowInvalidCertificates
:允许连接到具有无效 SSL 证书的服务器。这在需要连接到使用自签名证书的服务器时非常有用,但同样不建议在生产环境中使用。 -
--sslFIPSMode
:在启动时激活 FIPS 140-2 模式,确保使用符合 FIPS 标准的加密算法。 -
--retryWrites
:在遇到瞬时网络错误时自动重试写操作。这在处理不稳定的网络连接时可以提高应用程序的弹性。 -
--disableImplicitSessions
:不自动创建和使用隐式会话。这在你希望手动管理会话时非常有用,特别是在需要精确控制会话时。 -
--jsHeapLimitMB arg
:设置 JavaScript 作用域的堆大小限制(以 MB 为单位)。这可以防止 shell 由于内存不足而崩溃。
现在,我们来看身份验证选项:
-
-u [ --username ] arg
:指定用于身份验证的用户名。例如,-u "myUser"
会提示你输入该用户的密码。 -
-p [ --password ] arg
:指定用于身份验证的密码。如果在命令行中省略,系统会提示你输入。 -
--authenticationDatabase arg
:指定包含用户凭据的数据库。如果省略,它会使用你正在连接的数据库。 -
--authenticationMechanism arg
:指定要使用的身份验证机制,例如SCRAM-SHA-1
或GSSAPI
。 -
--gssapiServiceName arg (=mongodb)
:在使用 GSSAPI/Kerberos 身份验证时指定服务名。默认值为mongodb
。 -
--gssapiHostName arg
:指定用于 GSSAPI/Kerberos 身份验证的远程主机名。这确保了 Kerberos 票据请求针对正确的主机。
通过以上解析,我们可以更清晰地理解每个 MongoDB 命令行参数的作用,从而在实际操作中更加得心应手。
好的,让我们来细致地解析这些参数:
db address
:这是 MongoDB 服务器的地址。它可以是 localhost、IP 地址,甚至是带有端口号和数据库名的 URI。例如:foo
:连接到本地的foo
数据库。192.168.0.5/foo
:连接到 IP 地址为192.168.0.5
的机器上的foo
数据库。192.168.0.5:9999/foo
:连接到 IP 地址为192.168.0.5
的机器上,端口号为9999
的foo
数据库。
接下来是选项:
-
--shell
:执行文件后启动 shell。因此,如果我有一个包含 MongoDB 命令的文件,使用这个选项可以在执行文件中的命令后进入交互式 shell。 -
--nodb
:不连接到任何 MongoDB 服务器。这意味着在启动时不需要指定db address
。这在某些情况下非常有用,比如在 shell 中进行脚本编写,但不需要立即连接到数据库。 -
--norc
:不运行".mongorc.js"
文件。通常,MongoDB 在启动时会执行这个文件中的命令。使用这个选项可以跳过这些自定义设置,进行干净的启动。 -
--quiet
:减少输出。这在不需要看到所有日志信息时非常有用,可以保持终端的整洁。 -
--port arg
:指定要连接的端口号。默认情况下,MongoDB 使用27017
,但如果服务器在不同的端口上运行,可以使用这个选项进行指定。 -
--host arg
:指定 MongoDB 服务器的主机名或 IP 地址。这在连接到远程服务器或在本地有多个 MongoDB 实例时非常有用。 -
--eval arg
:在 shell 中评估 JavaScript 代码。例如,可以使用--eval "db.collection.find()"
来执行查询。 -
-h [ --help ]
:显示使用信息。这个选项在任何时候都需要查看可用选项时都非常有用。 -
--version
:显示版本信息。这在需要确认 MongoDB shell 的版本时非常有用,特别是在处理兼容性问题时。 -
--verbose
:增加详细输出。这在需要更多关于 shell 操作的信息时非常有用,特别是在进行故障排除时。 -
--ipv6
:启用 IPv6 支持。默认情况下,MongoDB 使用 IPv4,但如果需要连接到 IPv6 地址的服务器,这个选项是必不可少的。 -
--disableJavaScriptJIT
:禁用 JavaScript 的即时编译。这可能会影响 shell 中 JavaScript 代码的执行性能,但在某些情况下,如安全限制,可能需要这个选项。 -
--disableJavaScriptProtection
:允许自动 marshalling JavaScript 函数。这在需要在 shell 中使用特定的 JavaScript 函数时非常有用,但需要注意安全问题。 -
--ssl
:使用 SSL 连接。这确保了数据在 MongoDB shell 和服务器之间的传输是加密的,增加了额外的安全层。 -
--sslCAFile arg
:指定包含 CA 证书的文件,用于验证服务器的 SSL 证书。这在连接到使用 SSL 的服务器时非常重要,确保服务器是可信的。 -
--sslPEMKeyFile arg
:指定包含 PEM 格式的证书和密钥的文件,用于 client SSL 身份验证。这在需要向服务器提供 client 证书时非常有用。 -
--sslPEMKeyPassword arg
:指定用于解密--sslPEMKeyFile
中密钥的密码。如果密钥是加密的,这个选项是必要的。 -
--sslCRLFile arg
:指定包含证书吊销列表(CRL)的文件,用于验证服务器的 SSL 证书是否被吊销。这增加了额外的安全层,防止连接到使用已吊销证书的服务器。 -
--sslAllowInvalidHostnames
:允许连接到主机名不匹配证书的服务器。这在使用自签名证书或在开发环境中时非常有用,但不建议在生产环境中使用,因为这会降低安全性。 -
--sslAllowInvalidCertificates
:允许连接到具有无效 SSL 证书的服务器。这在需要连接到使用自签名证书的服务器时非常有用,但同样不建议在生产环境中使用,因为这会降低安全性。 -
--sslFIPSMode
:在启动时激活 FIPS 140-2 模式。这确保 shell 使用符合 FIPS 标准的加密算法,适用于需要高级安全性的环境。 -
--retryWrites
:在遇到瞬时网络错误时自动重试写操作。这在处理不稳定的网络连接时可以提高应用程序的弹性。 -
--disableImplicitSessions
:不自动创建和使用隐式会话。这在需要手动管理会话时非常有用,特别是在需要精确控制会话时。 -
--jsHeapLimitMB arg
:设置 JavaScript 作用域的堆大小限制(以 MB 为单位)。这可以防止 shell 由于内存不足而崩溃,特别是在处理大型数据集时。
最后,身份验证选项:
-
-u [ --username ] arg
:指定用于身份验证的用户名。例如,-u "myUser"
会提示输入该用户的密码。 -
-p [ --password ] arg
:指定用于身份验证的密码。如果在命令行中省略,系统会提示输入,这在保持安全时非常有用。 -
--authenticationDatabase arg
:指定包含用户凭据的数据库。如果省略,它会使用正在连接的数据库,但有时需要明确指定,特别是在用户管理跨多个数据库时。 -
--authenticationMechanism arg
:指定要使用的身份验证机制,如SCRAM-SHA-1
或GSSAPI
。这在连接到需要特定身份验证方法的服务器时非常重要。 -
--gssapiServiceName arg (=mongodb)
:在使用 GSSAPI/Kerberos 身份验证时指定服务名。默认值为mongodb
,但有时需要根据 Kerberos 配置进行更改。 -
--gssapiHostName arg
:指定用于 GSSAPI/Kerberos 身份验证的远程主机名。这确保了 Kerberos 票据请求针对正确的主机,特别是在主机名不明显时。
perror`
perror
是一个用于打印系统错误代码或 MySQL 错误代码描述的工具。
参数详解
-?, --help
:显示帮助信息并退出。-I, --info
:与--help
同义。-s, --silent
:仅打印错误消息。-v, --verbose
:打印错误代码和消息(默认)。-V, --version
:显示版本信息并退出。
变量和布尔选项
verbose
:默认为TRUE
。
mongodump`
mongodump
是一个用于将 MongoDB 服务器的内容导出为 .bson 文件的工具。
参数详解
mongodump <options>
:导出运行中服务器的内容。
一般选项
/help
:打印用法。/version
:打印工具版本并退出。
详细选项
-
verbosity options
:/v, /verbose:<level>
:增加详细日志输出(可以多次使用以增加详细程度)。/quiet
:隐藏所有日志输出。
-
connection options
:/h, /host:<hostname>
:连接到指定的 MongoDB 主机。/port:<port>
:服务器端口。
-
ssl options
:/ssl
:连接到启用了 SSL 的mongod
或mongos
。/sslCAFile:<filename>
:包含根证书链的 .pem 文件。/sslPEMKeyFile:<filename>
:包含证书和密钥的 .pem 文件。/sslPEMKeyPassword:<password>
:解密 sslPEMKeyFile 的密码。/sslCRLFile:<filename>
:包含证书吊销列表的 .pem 文件。/sslAllowInvalidCertificates
:绕过服务器证书的验证。/sslAllowInvalidHostnames
:绕过 TLS/SSL 证书中的主机名验证。/sslFIPSMode
:使用安装的 OpenSSL 库的 FIPS 模式。
-
authentication options
:/u, /username:<username>
:用于身份验证的用户名。/p, /password:<password>
:用于身份验证的密码。/authenticationDatabase:<database-name>
:用户凭据所在的认证数据库。/authenticationMechanism:<mechanism>
:使用的身份验证机制。
-
namespace options
:/d, /db:<database-name>
:指定要使用的数据库。/c, /collection:<collection-name>
:指定要使用的集合。
-
uri options
:/uri:mongodb-uri
:MongoDB URI 连接字符串。
-
query options
:/q, /query:
:提供 JSON 字符串作为查询过滤器。/queryFile:
:指定包含查询过滤器的文件路径。/readPreference:<string>|<json>
:指定读取偏好。/forceTableScan
:强制进行表扫描。
-
output options
:/o, /out:<directory-path>
:指定输出目录。/gzip
:使用 Gzip 压缩输出。/repair
:尝试从损坏的数据文件中恢复文档。/oplog
:使用 oplog 进行快照。/archive:<file-path>
:以归档格式输出到指定路径。/dumpDbUsersAndRoles
:转储用户和角色定义。/excludeCollection:<collection-name>
:从转储中排除指定集合。/excludeCollectionsWithPrefix:<collection-prefix>
:排除所有以指定前缀开头的集合。/j, /numParallelCollections:
:指定并行转储的集合数量(默认为 4)。/viewsAsCollections
:将视图导出为普通集合。
以下是 mongoexport
和 mongofiles
工具的参数详细解释:
mongoexport
mongoexport
是一个数据库工具,用于将 MongoDB 实例中存储的数据导出为 JSON 或 CSV 格式。
一般选项
/help
:打印用法。/version
:打印工具版本并退出。
详细选项
/v, /verbose:<level>
:增加详细日志输出(可以多次包含以增加详细程度,例如-vvvvv
,或者指定一个数值,例如--verbose=N
)。/quiet
:隐藏所有日志输出。
连接选项
/h, /host:<hostname>
:要连接的 MongoDB 主机(对于副本集可以使用setname/host1,host2
)。/port:<port>
:服务器端口(也可以使用--host hostname:port
)。
SSL 选项
/ssl
:连接到启用了 SSL 的mongod
或mongos
。/sslCAFile:<filename>
:包含证书授权机构的根证书链的.pem
文件。/sslPEMKeyFile:<filename>
:包含证书和密钥的.pem
文件。/sslPEMKeyPassword:<password>
:解密sslPEMKeyFile
的密码。/sslCRLFile:<filename>
:包含证书吊销列表的.pem
文件。/sslAllowInvalidCertificates
:绕过服务器证书的验证。/sslAllowInvalidHostnames
:绕过服务器名称的验证。/sslFIPSMode
:使用安装的 OpenSSL 库的 FIPS 模式。
认证选项
/u, /username:<username>
:用于认证的用户名。/p, /password:<password>
:用于认证的密码。/authenticationDatabase:<database-name>
:保存用户凭据的数据库。/authenticationMechanism:<mechanism>
:使用的认证机制。
命名空间选项
/d, /db:<database-name>
:要使用的数据库。/c, /collection:<collection-name>
:要使用的集合。
URI 选项
/uri:mongodb-uri
:MongoDB URI 连接字符串。
输出选项
/f, /fields:<field>[,<field>]*
:字段名的逗号分隔列表(导出 CSV 时必需)例如-f "name,age"
。/fieldFile:<filename>
:包含字段名的文件 - 每行一个字段名。/type:<type>
:输出格式,要么是json
要么是csv
(默认为json
)。/o, /out:<filename>
:输出文件;如果没有指定,则使用 stdout。/jsonArray
:输出到 JSON 数组而不是每行一个对象。/pretty
:输出格式化为人类可读的 JSON。/noHeaderLine
:导出 CSV 数据时不包含字段名列表在第一行。
查询选项
/q, /query:<json>
:查询过滤器,作为一个 JSON 字符串,例如{x:{$gt:1}}
。/queryFile:<filename>
:包含查询过滤器的文件路径(JSON)。/k, /slaveOk
:如果可用,允许从辅助节点读取(默认为false
)。/readPreference:<string>|<json>
:指定读取偏好。/forceTableScan
:强制执行表扫描(不使用$snapshot
)。/skip:<count>
:要跳过的文档数量。/limit:<count>
:限制要导出的文档数量。/sort:<json>
:排序顺序,作为一个 JSON 字符串,例如{x:1}
。/assertExists
:如果指定,集合不存在则导出失败(默认为false
)。
mongofiles
mongofiles
是一个用于在命令行中操作 GridFS 文件的工具。
一般选项
/help
:打印用法。/version
:打印工具版本并退出。
详细选项
/v, /verbose:<level>
:增加详细日志输出。/quiet
:隐藏所有日志输出。
连接选项
/h, /host:<hostname>
:要连接的 MongoDB 主机。/port:<port>
:服务器端口。
SSL 选项
/ssl
:连接到启用了 SSL 的mongod
或mongos
。/sslCAFile:<filename>
:包含根证书链的.pem
文件。/sslPEMKeyFile:<filename>
:包含证书和密钥的.pem
文件。/sslPEMKeyPassword:<password>
:解密sslPEMKeyFile
的密码。/sslCRLFile:<filename>
:包含证书吊销列表的.pem
文件。/sslAllowInvalidCertificates
:绕过服务器证书的验证。/sslAllowInvalidHostnames
:绕过服务器名称的验证。/sslFIPSMode
:使用安装的 OpenSSL 库的 FIPS 模式。
认证选项
/u, /username:<username>
:用于认证的用户名。/p, /password:<password>
:用于认证的密码。/authenticationDatabase:<database-name>
:保存用户凭据的数据库。/authenticationMechanism:<mechanism>
:使用的认证机制。
URI 选项
/uri:mongodb-uri
:MongoDB URI 连接字符串。
存储选项
/d, /db:<database-name>
:要使用的数据库(默认为test
)。/l, /local:<filename>
:put|get 的本地文件名。/t, /type:
:put 的内容/MIME 类型(可选)。/r, /replace
:put 后删除具有相同名称的其他文件。/prefix:<prefix>
:要使用的 GridFS 前缀(默认为fs
)。/writeConcern:<write-concern>
:写入关注选项。
查询选项
/readPreference:<string>|<json>
:指定读取偏好。
以下是 mongoimport
和 mongorestore
工具的参数详细解释:
mongoimport
mongoimport
是一个用于将 CSV、TSV 或 JSON 数据导入 MongoDB 的工具。
一般选项
/help
:打印用法。/version
:打印工具版本并退出。
详细选项
/v, /verbose:<level>
:增加详细日志输出(可以多次包含以增加详细程度,例如-vvvvv
,或者指定一个数值,例如--verbose=N
)。/quiet
:隐藏所有日志输出。
连接选项
/h, /host:<hostname>
:要连接的 MongoDB 主机(对于副本集可以使用setname/host1,host2
)。/port:<port>
:服务器端口(也可以使用--host hostname:port
)。
SSL 选项
/ssl
:连接到启用了 SSL 的mongod
或mongos
。/sslCAFile:<filename>
:包含证书授权机构的根证书链的.pem
文件。/sslPEMKeyFile:<filename>
:包含证书和密钥的.pem
文件。/sslPEMKeyPassword:<password>
:解密sslPEMKeyFile
的密码。/sslCRLFile:<filename>
:包含证书吊销列表的.pem
文件。/sslAllowInvalidCertificates
:绕过服务器证书的验证。/sslAllowInvalidHostnames
:绕过服务器名称的验证。/sslFIPSMode
:使用安装的 OpenSSL 库的 FIPS 模式。
认证选项
/u, /username:<username>
:用于认证的用户名。/p, /password:<password>
:用于认证的密码。/authenticationDatabase:<database-name>
:保存用户凭据的数据库。/authenticationMechanism:<mechanism>
:使用的认证机制。
命名空间选项
/d, /db:<database-name>
:要使用的数据库。/c, /collection:<collection-name>
:要使用的集合。
URI 选项
/uri:mongodb-uri
:MongoDB URI 连接字符串。
输入选项
/f, /fields:<field>[,<field>]*
:字段名的逗号分隔列表,例如-f name,age
。/fieldFile:<filename>
:包含字段名的文件,每行一个字段名。/file:<filename>
:要导入的文件;如果没有指定,则使用标准输入。/headerline
:使用输入源的第一行作为字段列表(仅 CSV 和 TSV)。/jsonArray
:将输入源视为 JSON 数组。/parseGrace:<grace>
:控制类型转换失败时的行为,可以是autoCast
、skipField
、skipRow
或stop
(默认为stop
)。/type:<type>
:要导入的输入格式:json、csv 或 tsv(默认为json
)。/columnsHaveTypes
:指示字段列表(来自-fields
、-fieldFile
或-headerline
)指定了类型。
导入选项
/drop
:在插入文档前删除集合。/ignoreBlanks
:在 CSV 和 TSV 中忽略空值字段。/maintainInsertionOrder
:按输入源中的顺序插入文档。/j, /numInsertionWorkers:<number>
:并发执行的插入操作数量(默认为 1)。/stopOnError
:在第一个插入/更新错误时停止导入。/mode:[insert|upsert|merge]
:插入模式,insert
仅插入,upsert
插入或替换现有文档,merge
插入或修改现有文档(默认为insert
)。/upsertFields:<field>[,<field>]*
:用于查询部分的字段,当--mode
设置为upsert
或merge
时使用。/writeConcern:<write-concern-specifier>
:写入关注选项。/bypassDocumentValidation
:绕过文档验证。
mongorestore
mongorestore
是一个用于将 mongodump
生成的备份恢复到运行中的服务器的工具。
一般选项
/help
:打印用法。/version
:打印工具版本并退出。
详细选项
/v, /verbose:<level>
:增加详细日志输出。/quiet
:隐藏所有日志输出。
连接选项
/h, /host:<hostname>
:要连接的 MongoDB 主机。/port:<port>
:服务器端口。
SSL 选项
/ssl
:连接到启用了 SSL 的mongod
或mongos
。/sslCAFile:<filename>
:包含证书授权机构的根证书链的.pem
文件。/sslPEMKeyFile:<filename>
:包含证书和密钥的.pem
文件。/sslPEMKeyPassword:<password>
:解密sslPEMKeyFile
的密码。/sslCRLFile:<filename>
:包含证书吊销列表的.pem
文件。/sslAllowInvalidCertificates
:绕过服务器证书的验证。/sslAllowInvalidHostnames
:绕过服务器名称的验证。/sslFIPSMode
:使用安装的 OpenSSL 库的 FIPS 模式。
认证选项
/u, /username:<username>
:用于认证的用户名。/p, /password:<password>
:用于认证的密码。/authenticationDatabase:<database-name>
:保存用户凭据的数据库。/authenticationMechanism:<mechanism>
:使用的认证机制。
URI 选项
/uri:mongodb-uri
:MongoDB URI 连接字符串。
命名空间选项
/d, /db:<database-name>
:从 BSON 文件恢复时使用的数据库。/c, /collection:<collection-name>
:从 BSON 文件恢复时使用的集合。/excludeCollection:<collection-name>
:在恢复期间跳过指定的集合。/excludeCollectionsWithPrefix:<collection-prefix>
:跳过具有给定前缀的集合。/nsExclude:<namespace-pattern>
:排除匹配的命名空间。/nsInclude:<namespace-pattern>
:包括匹配的命名空间。/nsFrom:<namespace-pattern>
:重命名匹配的命名空间,必须有匹配的nsTo
。/nsTo:<namespace-pattern>
:重命名匹配的命名空间,必须有匹配的nsFrom
。
输入选项
/objcheck
:在插入前验证所有对象。/oplogReplay
:回放 oplog 以进行点时间恢复。/oplogLimit:<seconds>[:ordinal]
:只包括在提供的 Timestamp 之前的 oplog 条目。/oplogFile:<filename>
:用于回放 oplog 的文件。/archive:<filename>
:从指定的归档文件恢复。/restoreDbUsersAndRoles
:恢复给定数据库的用户和角色定义。/dir:<directory-name>
:输入目录,使用-
表示标准输入。/gzip
:解压缩 gzip 压缩的输入。
恢复选项
/drop
:在导入前删除每个集合。/dryRun
:在不导入任何内容的情况下查看摘要。/writeConcern:<write-concern>
:写入关注选项。/noIndexRestore
:不恢复索引。/noOptionsRestore
:不恢复集合选项。/keepIndexVersion
:不更新索引版本。/maintainInsertionOrder
:在恢复期间保持文档顺序。/j, /numParallelCollections:
:并行恢复的集合数量(默认为 4)。/numInsertionWorkersPerCollection:
:每个集合并发执行的插入操作数量(默认为 1)。/stopOnError
:在遇到插入错误时停止恢复。/bypassDocumentValidation
:绕过文档验证。
以下是 mongostat
工具的参数详细解释:
一般选项
/help
:打印用法信息。/version
:打印工具版本并退出。
详细选项
/v, /verbose:<level>
:增加详细日志输出(可以多次包含以增加详细程度,例如-vvvvv
,或者指定一个数值,例如--verbose=N
)。/quiet
:隐藏所有日志输出。
连接选项
/h, /host:<hostname>
:要连接的 MongoDB 主机(可以用逗号分隔多个主机)。/port:<port>
:服务器端口(也可以使用--host hostname:port
)。
SSL 选项
/ssl
:连接到启用了 SSL 的mongod
或mongos
。/sslCAFile:<filename>
:包含证书授权机构的根证书链的.pem
文件。/sslPEMKeyFile:<filename>
:包含证书和密钥的.pem
文件。/sslPEMKeyPassword:<password>
:解密sslPEMKeyFile
的密码。/sslCRLFile:<filename>
:包含证书吊销列表的.pem
文件。/sslAllowInvalidCertificates
:绕过服务器证书的验证。/sslAllowInvalidHostnames
:绕过服务器名称的验证。/sslFIPSMode
:使用安装的 OpenSSL 库的 FIPS 模式。
认证选项
/u, /username:<username>
:用于认证的用户名。/p, /password:<password>
:用于认证的密码。/authenticationDatabase:<database-name>
:保存用户凭据的数据库。/authenticationMechanism:<mechanism>
:使用的认证机制。
URI 选项
/uri:mongodb-uri
:MongoDB URI 连接字符串。
统计选项
/o:<field>[,<field>]*
:要显示的字段。对于自定义字段,使用点语法索引serverStatus
输出,并可选方法.diff()
和.rate()
,例如metrics.record.moves.diff()
。/O:<field>[,<field>]*
:与-o
类似,但预加载了默认字段。指定的字段插入在默认输出之后。/humanReadable
:以人类可读的格式打印大小和时间(例如 1K 234M 2G)。要使用更精确的机器可读格式,请使用--humanReadable=false
(默认为true
)。/noheaders
:不输出列名。/n, /rowcount:<count>
:要打印的统计行数(0 表示无限)。/discover
:发现节点并显示所有节点的统计信息。/http
:使用 HTTP 代替原始数据库连接。/all
:所有可选字段。/json
:以 JSON 格式输出而不是格式化表格。/useDeprecatedJsonKeys
:使用旧的键名称;仅与 JSON 输出选项有效。/i, /interactive
:在非滚动界面中显示统计信息。
mongostat
是一个命令行工具,用于提供正在运行的 mongod
或 mongos
实例的状态快速概览。它类似于 UNIX/Linux 文件系统实用程序 vmstat
,但提供关于 mongod
和 mongos
实例的数据。使用 mongostat
可以帮助识别系统瓶颈。
相关文章:
数据库:MongoDB命令行帮助解释
MongoDB命令: mongodmongosmongoperrormongoexportmongofilesmongoimportmongorestoreMongostat MongoDB包中的核心组件包括: mongod 是 MongoDB 的核心服务器进程,负责数据存储和管理。mongos 是分片集群的路由进程,负责将请求路由到正确…...
python 统计相同像素值个数
目录 python 统计相同像素值个数 最大值附近的值 python 统计相同像素值个数 import cv2 import numpy as np import time from collections import Counter# 读取图像 image cv2.imread(mask16.jpg)# 将图像转换为灰度图像 gray_image cv2.cvtColor(image, cv2.COLOR_BGR2…...
工作流引擎Camunda与LiteFlow核心组件对比
以下为 Camunda 7 和 LiteFlow 详细的介绍,包括它们的核心组件和用途。 1. Camunda 7 详细介绍 Camunda 7 是一个基于 BPMN 2.0 标准的企业级工作流和决策自动化平台。它被广泛应用于复杂业务流程的管理和执行,其核心目标是通过流程自动化来提升企业效…...
记一个Timestamp时区问题的坑
resultSet.getTimestamp(“kpi_collect_time”)查出来的Timestamp居然是带时区的, 如果该Timestamp不是UTC时区的,Timestamp.toInstant().atZone(ZoneId.of(“UTC”))会把Timestamp转成UTC时区 使用Timestamp.toLocalDateTime()可以直接把时区信息抹除 …...
R语言学习笔记之开发环境配置
一、概要 整个安装过程及遇到的问题记录 操作步骤备注(包含遇到的问题)1下载安装R语言2下载安装RStudio3离线安装pacman提示需要安装Rtools4安装Rtoolspacman、tidyfst均离线安装完成5加载tidyfst报错 提示需要安装依赖,试错逐步下载并安装…...
Hive部署
1. 最小化安装Hive 本次安装的版本是Hive的3.1.3版本 解压缩Hive压缩包 # 解压缩 tar -zxvf apache-hive-3.1.3-bin.tar.gz、 # 修改文件夹名称(看个人习惯,可以不执行) mv apache-hive-3.1.3-bin apache-hive-3.1.3在conf目录下,新增hive-env.sh&…...
Windows第一次上手鸿蒙周边
端云一体所需装备 很重要:C/D/E/F盘要有二三十G的可用空间! 硬件:华为鸿蒙实验箱(基础版)》飞机板核心板环境监测板 软件:Visual Studio Code写代码 终端编译 Hiburn烧录到开发板 MobaXterm (…...
【java数据结构】二叉搜索树
【java数据结构】二叉搜索树 一、二叉搜索树的概念二、二叉搜索树的操作2.1 插入2.2 查找2.3 删除(重点以及难点)2.3.1 删除节点的左边为null2.3.2 删除节点的右边为null2.3.3 删除的左右节点都不为空 三、二叉搜索树的性能分析3.1 最优情况3.2 最差情况…...
3D Vision--计算点到平面的距离
写在前面 本文内容 计算点到平面的距离 平台/环境 python open3d 转载请注明出处: https://blog.csdn.net/qq_41102371/article/details/121482246 目录 写在前面准备Open3D代码完 准备Open3D pip install open3d代码 import open3d as o3ddef compute_points2…...
相机内参的作用原理
由三角形角度关系,得到X_image / focal_length X_real / Z_distance 用双目测距得到Z_distance之后 然后联合X_image / focal_length可以计算得到真实世界的X_real...
计算机网络介质访问控制全攻略:从信道划分到协议详解!!!
一、信道划分介质访问控制 介质访问控制:多个节点共享同一个“总线型”广播信道时,可能发生“信号冲突” 应该怎么控制各节点对传输介质的访问,才能减少冲突,甚至避免冲突? 时分复用(TDM) 时分复用:将时间分为等长的“…...
代码随想录day1
704.二分查找: 1.左闭右闭 int search(vector<int>& nums, int target) {int right nums.size() - 1;int left 0;while(left < right){int middle left ((right - left) >> 1);if(nums.at(middle) target){return middle;}else if(nums[m…...
IJK播放器问题集
IJK播放器问题集 在使用ijkplayer进行播放时候,时常会遇到一些问题,故记录下: 1 ijkplayer出现小窗切换到大窗画面卡住问题 检查是否大小窗口切换时候,频繁设置了surface。某些底层api频繁设置会导致画面不动。 //holder判断是…...
macOS使用LLVM官方发布的tar.xz来安装Clang编译器
之前笔者写过一篇博文ubuntu使用LLVM官方发布的tar.xz来安装Clang编译器介绍了Ubuntu下使用官方发布的tar.xz包来安装Clang编译。官方发布的版本中也有MacOS版本的tar.xz,那MacOS应该也是可以安装的。 笔者2015款MBP笔记本,CPU是intel的,出厂…...
【设计模式-行为型】观察者模式
一、什么是观察者模式 说起观察者模式,不得不说一位观察者模式的高级应用者,朱元璋。不知道大家有没有看过胡军演的电视剧《朱元璋》。这部剧背景是元朝末年,天下大乱,朱元璋自幼父母双亡,沦为乞丐,后遁入空…...
HTML5 新表单属性详解
HTML5 为 <form> 和 <input> 标签引入了一系列新属性,极大地增强了表单的功能和用户体验。这些新属性不仅简化了开发者的工作,还为用户提供了更友好、更高效的交互方式。本文将详细介绍这些新属性,并结合代码示例帮助大家更好地理…...
Android程序中使用FFmpeg库
目录 前言 一、环境 二、创建APP 三. 添加FFmpeg库文件到app中 1. 复制ffmpeg头文件和so库到app中 2. 修改CMakeLists.txt文件内容. 3. 修改ffmpeglib.cpp 文件内容 4. 修改NativeLib.kt 文件添加方法和加载库 5. 调用 四. 增加解析视频文件信息功能 总结 前言 前面…...
到华为考场考HCIE的注意事项和考试流程
大家好,我是张同学,来自成都职业技术学院2021级计算机网络专业。最近成功通过了 Datacom HCIE 考试,在这里和大家分享一下我的经验。 考证契机 在母校的培养下,我接触到ICT这个行业,打好了基础,开始了成…...
基于STM32的智能书架管理系统设计
目录 引言系统设计 硬件设计软件设计 系统功能模块 图书分类与存储模块环境监测与保护模块数据显示与用户交互模块远程管理与书籍推荐模块 控制算法 图书分类与存储管理算法环境监测与保护算法数据记录与推荐算法 代码实现 图书分类与存储代码环境监测与保护代码数据显示与远程…...
STL--list(双向链表)
目录 一、list 对象创建 1、默认构造函数 2、初始化列表 3、迭代器 4、全0初始化 5、全值初始化 6、拷贝构造函数 二、list 赋值操作 1、赋值 2、assign(迭代器1,迭代器2) 3、assign(初始化列表) 4、assig…...
构建高效稳定的网络环境
概述 网络技术是当今IT行业的重要组成部分,构建高效稳定的网络环境对于企业、个人和互联网发展至关重要。本文将探讨网络技术中的关键要素,包括网络协议、网络架构、网络安全和网络优化,并提供实用的技巧和最佳实践,以帮助您构建…...
2025美赛倒计时,数学建模五类模型40+常用算法及算法手册汇总
数学建模美赛倒计时,对于第一次参加竞赛且没有相关基础知识的同学来讲,掌握数学建模常用经典的模型算法知识,并熟练使用相关软件进行建模是关键。本文将介绍一些常用的模型算法,以及软件操作教程。 数学建模常用模型包括…...
ElasticSearch DSL查询之排序和分页
一、排序功能 1. 默认排序 在 Elasticsearch 中,默认情况下,查询结果是根据 相关度 评分(score)进行排序的。我们之前已经了解过,相关度评分是通过 Elasticsearch 根据查询条件与文档内容的匹配程度自动计算得出的。…...
C语言--数据在内存中的存储
数据在内存中的存储 主要研究整型和浮点型在内存中的存储。 1. 整数在内存中的存储 在学习操作符的时候,就了解过了下面的内容: 整数的2进制表示方法有三种,即原码、反码和补码。 有符号的整数,三种表示方法均有符号位和数值…...
qml ScrollView详解
1、概述 QML中的ScrollView是一个容器组件,它允许用户滚动查看其内容,当内容超出视口大小时特别有用。ScrollView提供了垂直和水平滚动条(或触摸滚动),使用户能够访问被视口裁剪的内容部分。它常用于显示大量数据或复…...
通过frm和ibd文件恢复mysql数据
1.提取所有的文件名并查找出以frm结尾的 dir /t /b >1.txt 2.要准备的软件 1.mysql-utilities-1.6.5-winx64.msi 2.vcredist_x64.exe(c 2013) 3.利用frm生成sql文件 mysqlfrm --serverroot:123456localhost:3306 --port3308 D:\phpstudy_pro\Extensions\MySQL5.7.26\da…...
观察者模式 - 观察者模式的应用场景
引言 观察者模式(Observer Pattern)是设计模式中行为型模式的一种,它定义了对象之间的一对多依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会自动收到通知并更新。观察者模式广泛应用于事件处理系统…...
【Mac】Python相关知识经验
一、给Python3安装第三方库 mac下给Python3安装第三方库pillow,处理图片 【安装方式】: 终端中输入命令:python3 -m pip install pillow 按回车,等待pillow下载安装 NOTE: 其他模块同理,如pytesseract 二、Python版…...
使用 JMeter 的 Autostop Listener 插件:自动化性能测试的守护者
在性能测试中,监控测试执行的状态并及时做出响应是至关重要的。如果测试过程中出现性能瓶颈或系统崩溃,继续运行测试可能会导致资源浪费或测试结果不准确。JMeter 的 Autostop Listener 插件正是为了解决这一问题而设计的。它允许你设置自动化停止条件&a…...
C# lock使用的逻辑和情景
情景:扣库存,会出现超扣的情况,因为同一个单子会有不同的工作人员使用,要保证数据的一致性。那么就用锁。 优化锁对象管理 使用 Lazy 初始化锁对象: 使用 ConcurrentDictionary 的 GetOrAdd 方法结合 Lazy 确保锁对象只…...
React 中hooks之 React useCallback使用方法总结
1. useCallback 基础概念 useCallback 是 React 的一个 Hook,用于记忆函数定义,避免在每次渲染时创建新的函数实例。它在需要将回调函数传递给经过优化的子组件时特别有用。 当state变化的时候引起组件重新渲染执行会导致某个方法被反复创建增加内存负担…...
期刊论文左下角添加通讯作者和横线的方法
一、添加脚注 二、写脚注内容 三、修改脚注分隔符(添加横线) 大概插入十个此符号,长度可微调。...
Docker使用 使用Dockerfile来创建镜像
本篇文章主要介绍了Docker使用Dockerfile来创建镜像, 本文学习Dcokerfile的基本命令,并且创建一个支持ssh服务的镜像. 1.Dockerfile 1.1基本案例 基本案例 dockerfile可以说是docker的描述符,该文件定义了docker镜像的所能拥有哪些东西.基本格式如下: 第一行指定…...
手写SOCKET进行HTTP通信
网络基础 我们电脑主板上都内置了多种网卡,一般主要有以下几类: 虚拟网卡(loopback) 注意,它是虚拟的,并不是物理网卡,也被称为是本地环回地址(或接口),一般将127.0.0.1作为本地环回…...
深入理解 Java 的并发容器
目录 一、为何需要并发容器 二、Java 中的主要并发容器 1. ConcurrentHashMap 2. CopyOnWriteArrayList 3. ConcurrentLinkedQueue 4. BlockingQueue及其实现类 三、并发容器的应用场景 1. 缓存系统 2. 任务队列 3. 数据共享与传递 四、使用并发容器的注意事项 1. …...
四、CSS效果
一、box-shadow box-shadow:在元素的框架上添加阴影效果 /* x 偏移量 | y 偏移量 | 阴影颜色 */ box-shadow: 60px -16px teal; /* x 偏移量 | y 偏移量 | 阴影模糊半径 | 阴影颜色 */ box-shadow: 10px 5px 5px black; /* x 偏移量 | y 偏移量 | 阴影模糊半径 | 阴影扩散半…...
每日OJ_牛客_DP44兑换零钱_C++_Java
目录 牛客_DP44兑换零钱 题目解析 C代码 Java代码 牛客_DP44兑换零钱 兑换零钱_牛客题霸_牛客网 描述: 给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个a…...
Linux——入门基本指令汇总
目录 1. ls指令2. pwd3. whoami指令4. cd指令5. clear指令6. touch指令7. mkdir指令8. rm指令9. man指令10. cp指令11. mv指令12. cat指令13. tac指令14. more指令15. less指令16. head指令17. tail指令18. date指令19. cal指令20. find指令21. which指令22. alias指令23. grep…...
VOSK实现【离线中文语音】识别
Vosk是一款开源的离线语音识别工具包,具有以下功能: 多语言支持:能够对20多种语言和方言进行语音识别,如中文、英语、德语、法语、西班牙语等,可满足不同用户的语言需求。 模型轻量化:每种语言的模型大小仅…...
Qt 控件与布局管理
1. Qt 控件的父子继承关系 在 Qt 中,继承自 QWidget 的类,通常会在构造函数中接收一个 parent 参数。 这个参数用于指定当前空间的父控件,从而建立控件间的父子关系。 当一个控件被设置为另一控件的子控件时,它会自动成为该父控…...
Checkbutton组件
在这个案例中,我们将添加三个复选框(Checkbutton)组件,每个组件都有不同的初始状态。 准备就绪 本文案例是在上一篇《Combobox组件》上的扩展,你可以从这里下载其中的代码。 如何操作 我们正在创建三个状态不同的复选框组件。 第一个组件是禁用状态,并且其中有一个勾…...
Markdown Viewer 浏览器, vscode
使用VS Code插件打造完美的MarkDown编辑器(插件安装、插件配置、markdown语法)_vscode markdown-CSDN博客 右键 .md 文件,选择打开 方式 (安装一些markdown的插件) vscode如何预览markdown文件 | Fromidea GitCode - 全球开发者…...
【QNX】QNX侧查看CPU的信息
目录 一 工具 ① top ▲ 使用top查看CPU信息 ▲ 输出 ② hogs ▲ 使用hogs查看CPU信息 ▲ 输出 ③ pidin ▲ 使用pidin查看CPU信息 ▲ 输出 二 对比 在QNX实时操作系统中,可查看CPU信息的方法有top、hogs以及pidin。 一 工具 ① top top命令不仅能够显…...
Android中关于View的几种属性赋值方式
我们以给TextView组件设置颜色属性展开讲解 1、xml中直接定义(设定TextView为黑色) 2、xml 中 引用style(设定TextView为蓝色) 3、在theme 中直接定义(设定TextView紫色) 4、在主题中添加对样式资源的引用…...
JavaScript网页基于tesseract.js提取图片中的文字,识别车牌,识别快递单号等
Tesseract是我们的老盆友了,以前写过基于JavaCV版本的Tesseract字符识别,现在tesseract终于可以在网页上面用了(tesseract.js),让我们一起来试试效果。 注意:本章使用Vue模块化调用tesseract.js方式&#x…...
智慧金融合集:财税资金数据管理一体化大屏
随着科技的快速进步和数字化转型的加速,金融、税务等机构和企业面临的数据量呈现出爆炸式增长。传统的数据分析方法早已无法胜任现代业务的需求。为此,许多机构开始尝试创新的软件工具来更好的管理繁琐的数据。 通过图扑软件的数据可视化大屏,…...
Android SystemUI——最近任务应用列表(十七)
对于最近任务应用列表来说,在 Android 原生 SystemUI 中是一个单独的组件。 <string-array name="config_systemUIServiceComponents" translatable="false">……<item>com.android.systemui.recents.Recents</item> </string-arra…...
工业相机 SDK 二次开发-Halcon 插件
本文介绍了 Halcon 连接相机时插件的使用。通过本套插件可连接海康 的工业相机。 一. 环境配置 1. 拷贝动态库 在 用 户 安 装 MVS 目 录 下 按 照 如 下 路 径 Development\ThirdPartyPlatformAdapter 找到目录为 HalconHDevelop 的文 件夹,根据 Halcon 版本找到对…...
AI Agent:数字文明的暗物质,如何悄然改变我们的世界?
AI Agent:数字文明的暗物质,如何悄然改变我们的世界? 引言 在人类文明的漫长黑夜中,人工智能(Artificial Intelligence, AI)如同第一缕曙光,正在撕裂数字与现实的边界。这是一个技术奇点临近的…...
vscode 自用插件
vscode按住ctrl鼠标左键无法跟踪跳转方法名,装这些插件就可以 vscode-elm-jump:常规的代码跳转定义 Vue CSS Peek:跳转css定义 vue-helper:变量函数只跳转定义 Vetur 代码提示 Baidu Comate 自动帮你写console.log Turbo Console Log: ctrl alt l 选中变量之后&am…...