Mongo Shell是MongoDB自带的Shell客户端,您可以使用Mongo Shell连接数据库实例、对数据库进行数据查询和更新、执行管理等操作。 Mongo Shell是MongoDB客户端的一部分,您需要先下载和安装MongoDB客户端,再使用Mongo Shell连接数据库实例。
文档数据库服务实例默认提供内网IP地址,当应用部署在弹性云服务器上,且该弹性云服务器与文档数据库服务实例处于同一区域,同一VPC时,可以使用内网连接文档数据库服务实例,该方式可以获得更快的传输速率和更高的安全性。
本文以部署在弹性云服务器上的应用场景为例,介绍如何使用Mongo Shell通过内网的方式连接实例。
连接实例的方式有SSL连接和非SSL连接两种方法,其中SSL连接进行了加密,具有更高的安全性。为了提升数据在网络传输过程中的安全性,建议采用SSL方式。
前提条件
- 创建并登录弹性云服务器。
- 在弹性云服务器上,安装MongoDB客户端。为了保障鉴权成功,请安装与目标实例版本一致的MongoDB客户端版本。
- 设置安全组规则,确保弹性云服务器和文档数据库服务实例实现网络互通。
非SSL连接
- 进入“TeleDB数据库控制台”。
- 在“DDS”>“实例管理”页面,选择指定的副本集实例,单击实例名称,进入“基本信息”页面。
- 在实例信息中关闭SSL。
- 连接弹性云服务器。
- 在客户端工具mongo所在的目录下,连接数据库实例。
内网高可用只读从连接
命令格式:
./mongo <内网高可用只读从连接地址>
内网高可用只读从连接地址:您可以在“基本信息>只读从连接”处获取。
连接示例:
./mongo "mongodb://root:password@192.168.xx.xx:8030/admin?authSource=admin&readPreference=secondary&readPreferenceTags=role:readOnly&replicaSet=DDS"
参数 | 说明 |
---|---|
root | 表示数据库帐号名。默认创建root账号,也可以是您创建的账号。 |
password | 表示数据库帐号对应的密码,需要替换为真实密码。如果密码中包含特殊字符“@”、“!”和“%”需要分别替换为对应的十六进制的URL编码(ASCII码)“%40”、“%21”和“%25”。示例:密码为****@%!,对应的URL编码为****%40%25%21。 |
192.168.xx.xx:8030 | 待连接实例的mongod节点IP地址及端口号。mongod默认端口8030。 |
admin | 表示admin库名,可根据实际情况设置。 |
authSource=admin | root帐号认证数据库必须为“admin”,root账号为“authSource=admin”固定格式不可改变,也可以是您创建账号所在的库。 |
readPreference=[secondary \ secondaryPreferred] | 实现读写分离和负载均衡,该参数可以将写请求发送到主节点,读请求随机发送到从节点和只读节点,取值说明如下:readPreference=secondary:如果从节点和只读节点都出现故障,读请求失败,不会发送到主节点。readPreference=secondaryPreferred:如果从节点和只读节点都出现故障,该参数将读请求发送到主节点。 |
readPreferenceTags=[readonly_Tags] | 该参数可以将读请求优先发送到标签对应的只读节点。readonly_Tags为只读节点的标签键值对列表,固定取值为role:readOnly,不允许修改。 |
replicaSet=[replicaSet_value] | 指定副本集的名称。 |
出现如下信息,说明连接成功。
DDS:SECONDARY>
SSL方式
- 进入“TeleDB数据库控制台”。
- 在“DDS”>“实例管理”页面,选择指定的目标实例,单击实例名称,进入“基本信息”页面。
- 在实例信息中开启SSL,点击下载证书。
- 连接弹性云服务器,上传证书至弹性云服务器。
- 在客户端工具mongo所在的目录下,连接数据库实例。
内网高可用只读从连接
命令格式:
./mongo <内网高可用只读从连接地址> --ssl --sslCAFile <file_path> --sslAllowInvalidHostnames
内网高可用只读从连接地址:您可以在“基本信息>只读从连接”处获取。
连接示例:
./mongo "mongodb://root:password@192.168.xx.xx:8030/admin?authSource=admin&readPreference=secondary&readPreferenceTags=role:readOnly&replicaSet=DDS" --ssl --sslCAFile /conf/ca.crt -sslAllowInvalidHostnames
参数 | 说明 |
---|---|
root | 表示数据库帐号名。默认创建root账号,也可以是您创建的账号。 |
password | 表示数据库帐号对应的密码,需要替换为真实密码。如果密码中包含特殊字符“@”、“!”和“%”需要分别替换为对应的十六进制的URL编码(ASCII码)“%40”、“%21”和“%25”。示例:密码为****@%!,对应的URL编码为****%40%25%21。 |
192.168.xx.xx:8030 | 待连接实例的mongod节点IP地址及端口号。mongod默认端口8030。 |
admin | 表示admin库名,可根据实际情况设置。 |
authSource=admin | root帐号认证数据库必须为“admin”,root账号为“authSource=admin”固定格式不可改变,也可以是您创建账号所在的库。 |
file_path | 存放根证书的路径。 |
--sslAllowInvalidHostnames | 证书使用内部IP地址生成。通过内网SSL连接实例时,需要添加“--sslAllowInvalidHostnames”。 |
readPreference=[secondary \ secondaryPreferred] | 实现读写分离和负载均衡,该参数可以将写请求发送到主节点,读请求随机发送到从节点和只读节点,取值说明如下:readPreference=secondary:如果从节点和只读节点都出现故障,读请求失败,不会发送到主节点。readPreference=secondaryPreferred:如果从节点和只读节点都出现故障,该参数将读请求发送到主节点。 |
readPreferenceTags=[readonly_Tags] | 该参数可以将读请求优先发送到标签对应的只读节点。readonly_Tags为只读节点的标签键值对列表,固定取值为role:readOnly,不允许修改。 |
replicaSet=[replicaSet_value] | 指定副本集的名称。 |
出现如下信息,说明连接成功。
DDS:SECONDARY>