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