MongoDB 服务连接

在前面的教程中,介绍了如何去启动一个 MongoDB 服务,下面将介绍怎样使用 MongoDB shell 来连接 MongoDB 服务器。

MongoDB shell 就是 MongoDB 安装主目录下,bin 目录中的 mongo 二进制命令。

mongo 命令

运行 mongo --help 命令查看 mongo 命令的帮助信息,mongo 命令用法如下:

mongo [options] [db address] [file names (ending in .js)]

其中:

(1)db address  可以是:

foo                   本地计算机上的 foo 数据库
192.168.0.5/foo       192.168.0.5 机器上的 foo 数据库
192.168.0.5:9999/foo  192.168.0.5 机器 9999 端口上的 foo 数据库
mongodb://192.168.0.5:9999/foo  也可以使用 URI 连接字符串

(2)file names:指要运行的文件列表。文件必须以 .js 结尾,除非指定 --shell,否则将在运行后退出

(3)options 选项可取值如下:

--ipv6                               启用 IPv6 支持(默认禁用)
--host arg                           要连接到的服务器
--port arg                           要连接的端口
-h [ --help ]                        显示帮助信息
--version                            显示版本信息
--verbose                            开启输出详细模式
--shell                              执行文件后运行 shell
--nodb                               在启动时不连接到 mongod - 预计没有 “db address” 参数
--norc                               不会在启动时运行 “.mongorc.js” 文件
--quiet                              开启安静模式
--eval arg                           执行 javascript
--apiVersion arg                     设置 MongoDB API 版本
--apiStrict                          禁用 MongoDB 版本 API 中未包含的所有功能
--apiDeprecationErrors               禁用 MongoDB 版本 API 中弃用的所有功能
--disableJavaScriptJIT               禁用 Javascript JIT 及时编译器
--enableJavaScriptJIT                启用 Javascript JIT 及时编译器
--disableJavaScriptProtection        允许自动 JavaScript 函数编组
--retryWrites                        在暂时性网络错误时自动重试写入操作
--disableImplicitSessions            不会自动创建和使用隐式会话
--jsHeapLimitMB arg                  设置 js 作用域的堆大小限制
--idleSessionTimeout arg (=0)        如果 Shell 会话已空闲这么多秒,则终止该会话

AWS IAM 选项:

--awsIamSessionToken arg             用于临时凭证的 AWS 会话令牌

TLS 选项:

--tls                                所有连接均使用 TLS
--tlsCertificateKeyFile arg          用于 TLS 的 PEM 证书/密钥文件
--tlsCertificateKeyFilePassword arg  用于 TLS 的 PEM 文件中密钥的密码
--tlsCAFile arg                      TLS 证书授权文件
--tlsCRLFile arg                     TLS 的证书吊销列表文件
--tlsAllowInvalidHostnames           允许连接到主机名不匹配的服务器
--tlsAllowInvalidCertificates        允许连接到具有无效证书的服务器
--tlsFIPSMode                        启动时激活 FIPS 140-2 模式
--tlsCertificateSelector arg         系统存储中的 TLS 证书
--tlsDisabledProtocols arg           要禁用的 TLS 协议的逗号分隔列表 [TLS1_0,TLS1_1,TLS1_2,TLS1_3]

身份验证选项:

-u [ --username ] arg                用于身份验证的用户名
-p [ --password ] arg                用于身份验证的密码
--authenticationDatabase arg         用户源(默认为 dbname)
--authenticationMechanism arg        身份验证机制
--gssapiServiceName arg (=mongodb)   使用 GSSAPI/Kerberos 进行身份验证时要使用的服务名称
--gssapiHostName arg                 用于 GSSAPI/Kerberos 身份验证的远程主机名

FLE AWS 选项:

--awsAccessKeyId arg                 用于 FLE Amazon KMS 的 AWS 访问密钥
--awsSecretAccessKey arg             用于FLE Amazon KMS的AWS密钥
--awsSessionToken arg                可选AWS会话令牌ID
--keyVaultNamespace arg              数据库.集合存储加密后的FLE参数
--kmsURL arg                         测试参数以覆盖KMS的URL

示例:

(1)连接到本地 MongoDB 服务

$ mongo

(2)连接到本地 MongoDB 服务,用户名为 test,密码为 aaaaaa

$ mongo -u test -p aaaaaa

(3)连接到远程 192.168.50.22 机器的 MongoDB 服务,用户名为 test,密码为 aaaaaa

$ mongo --host 192.168.50.22 --port 27017 -u test -p aaaaaa

MongoDB 连接 URI

MongoDB 标准的 URI 连接语法:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

说明:

  • mongodb://  必须指定,是固定的协议格式。

  • username:password@  可选,如果设置了,在连接数据库服务器之后,驱动都会尝试登录这个数据库

  • host1  必须指定,指定至少一个 host, host1 是这个 URI 唯一要填写的,它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。

  • port1   可选,指定端口,如果不指定,默认为 27017。

  • /database   可选,如果指定 username:password@,连接并验证登录指定数据库。若不指定,默认打开 test 数据库。

  • ?options   可选,连接选项。如果不使用 /database,则前面需要加上 /。所有连接选项都是键值对 name=value,键值对之间通过 & 或 ;(分号)隔开。标准的连接格式包含了多个选项(options),如下表所示:

 MongoDB 服务连接

连接实例

(1)使用默认端口来连接 MongoDB 的服务,例如:

mongodb://localhost

通过 shell 连接 MongoDB 服务:

C:UsersAdministrator> mongo
MongoDB shell version v5.0.20
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("bc598392-c493-4a0e-b773-fd114db86243") }
MongoDB server version: 5.0.20
...
>

(2)使用用户名和密码连接到 MongoDB 服务器,你必须使用 “username:password@hostname/dbname” 格式,username 为用户名,password 为密码。使用用户 admin, 密码 123456 连接到本地的 MongoDB 服务上。例如:

C:UsersAdministrator> mongo mongodb://admin:123456@localhost/

(3)使用用户名和密码连接登录到指定数据库,格式如下:

C:UsersAdministrator> mongo mongodb://admin:123456@localhost/test

更多连接实例

连接本地数据库服务器,端口是默认的,格式如下:

mongodb://localhost

使用用户名fred,密码foobar登录localhost的admin数据库,格式如下:

mongodb://fred:foobar@localhost

使用用户名fred,密码foobar登录localhost的baz数据库,格式如下:

mongodb://fred:foobar@localhost/baz

连接 replica pair, 服务器1 为 example1.com,服务器2 为 example2,格式如下:

mongodb://example1.com:27017,example2.com:27017

连接 replica set 三台服务器 (端口 27017, 27018, 和27019),格式如下:

mongodb://localhost,localhost:27018,localhost:27019

连接 replica set 三台服务器, 写入操作应用在主服务器 并且分布查询到从服务器,格式如下:

mongodb://host1,host2,host3/?slaveOk=true

直接连接第一个服务器,无论是replica set一部分或者主服务器或者从服务器,格式如下:

mongodb://host1,host2,host3/?connect=direct;slaveOk=true

安全模式连接到 localhost:

mongodb://localhost/?safe=true

以安全模式连接到 replica set,并且等待至少两个复制服务器成功写入,超时时间设置为2秒。格式如下:

mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000
说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号