实例创建成功之后,您可以通过 MongoDB shell 或者各语言驱动访问数据库,并进行读写、查询等操作。
基本介绍
shell 方式
MongoDB Shell 是 MongoDB 自带的一种交互式 JavaScript 命令行管理工具, 对很多常用的命令进行了封装,您可以在云服务器 CVM 上安装 MongoDB Shell 工具,然后使用 Shell 命令连接 MongoDB 实例,进而对数据库进行读写、更新或者查询等操作。
注意:
URI 方式
URI 是统一资源标志符(Uniform Resource Identifier),是 Web 上每一种可用资源的唯一标识。MongoDB 官方推荐使用 URI 的方式连接 MongoDB,大部分的驱动程序也支持 URI 形式连接。
典型的 URI 连接示例如下:
mongodb://username:password@IP:27017/admin
mongodb://username:password@IP:27017/somedb?authSource=admin
mongodb://username:password@IP:27017/somedb?authSource=admin&readPreference=secondaryPreferred
mongodb://mongouser:******@10.X.X.X:27017,10.X.X.X:27017/test?replicaSet=cmgo-*******&authSource=admin
组成部分 | 含义 | 是否必须 |
mongodb:// | 一个特定的字符串,表示 MongoDB 协议 | 是 |
username | 用于登录 MongoDB 的用户名 | |
password | 用于登录 MongoDB 的用户密码 | 是 |
hostX:portX | MongoDB 的 IP 和端口 | 是 |
/admin | 要认证的数据库,云数据库 MongoDB 固定为 admin | 是,更多信息,请参见 认证数据库 |
authMechanism=MONGODB-CR | 认证机制 | 是,更多信息,请参见 认证机制 |
authSource=admin | 身份认证所用库,云数据库 MongoDB 固定为 admin | 是,更多信息,请参见 认证数据库 |
readPreference=secondaryPreferred | 可以设置优先读从库 | 是,更多信息,请参见 读操作的主从优先级 |
replicaSet | 副本集 ID | 是 |
通过 Shell 方式连接数据库
介绍通过 mongo shell 方式连接数据库的操作方法。
前提条件
申请与云数据库 MongoDB 实例在同一地域同一个 VPC 内的 Linux 云服务器 CVM。
已 创建云数据库 MongoDB 实例,且状态为运行中。
已在数据库管理页面的账号管理页签获取访问数据库实例用户名与密码信息。具体操作,请参见 账号管理。
已在实例列表获取访问数据库实例的内网 IP 地址与端口。具体操作,请参见 实例详情。
操作步骤
步骤1:登录云服务器 CVM
1. 登录 云服务器控制台。
2. 在左侧导航栏,选择实例。
3. 在实例管理页面上方,选择地域。
4. 在实例列表中找到已申请的 CVM ,单击右侧操作列中的登录 。
5. 输入申请 CVM 时设置的用户名密码即可登录云服务器。
步骤2:下载并解压 MongoDB Shell
1. 进入安装 MongoDB Shell 的路径下,使用
mkdir
命令,创建单独的文件夹,方便管理。2. 在已创建的文件夹路径下,使用
wget
命令下载 MongoDB Shell。示例如下:说明:
如下示例中的l70-XX.XX.XX,需要根据实际的版本信息进行替换,不可直接复制。
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-XX.XX.XX.tgz
说明:
3. 使用
tar
命令解压已下载的 MongoDB Shell 的安装包。示例如下:tar zxvf mongodb-linux-x86_64-rhel70-XX.XX.XX.tgz
步骤3:连接 MongoDB
1. 使用 cd 命令进入 MongoDB Shell 已解压的路径。示例如下:
cd mongodb-linux-x86_64-rhel70-XX.XX.XX
2. 执行如下命令,进入 MongoDB 。
./bin/mongo -umongouser -plxh***** 172.xx.xx.xx:27017/admin
其中,-u 后面指示连接数据库的用户名,-p 后面指示用户名的密码, 172.xx.xx.xx 和 27017 分别指定 MongoDB 实例主节点或从节点的 IP 地址 和端口,请您根据实际配置信息替换。
如忘记用户名与密码,请参见 账号管理 查看修改账号密码信息。
您可在节点管理 获取访问数据库实例主节点或从节点的 IP 地址与端口。
如果为多个 IP 访问,可将多个 IP 分别配置,使用英文逗号分隔开即可,例如:
--host 172.XX.XX.XX:27017,172.XX.XX.XX:27017,172.30.XX.XX:27017
。MongoDB shell version v4.2.16connecting to: mongodb://172.x.x.X:27017/admin?compressors=disabled&gssapiServiceName=mongodbImplicit session: session { "id" : UUID("aeb18f32-6413-49da-864a-5123b4d2****") }MongoDB server version: 4.2.11Welcome to the MongoDB shell.
说明:
副本集,您可以连接 Primary 节点、Secondary1 节点或 Secondary2 节点的连接地址。
Primary 节点:副本集实例中的主节点,连接该节点可执行数据库的读写操作。
Secondary 节点:副本集实例中的从节点,连接该节点仅能执行数据库的读操作。
分片集群, 您可以连接任意一 mongos 节点的连接地址。
通过 URI 方式连接数据库
介绍多语言 SDK 客户端通过 URI 方式连接云数据库 MongoDB 的具体方法。
前提条件
准备多语言 SDK 运行环境 。
获取 URI 连接串:登录 MongoDB 控制台 ,在实例列表找到目标实例,在其实例详情页面的网络配置区域的访问地址中复制即可。
连接示例
连接示例
连接云数据库 MongoDB 最低驱动版本需要 3.2 版本,建议使用最新版的客户端驱动以保证最好的兼容性,包括 Shell 套件、Java jar 包、PHP 扩展、Node.js 模块等,具体请参见 MongoDB 官网驱动介绍。以下给出了云数据库 MongoDB 所支持的多语言 SDK 的具体示例,您可以根据示例拼接 URI,尝试连接数据库,并使用数据库进行读写操作。
更多参考
默认用户
默认用户
云数据库 MongoDB 內建了 默认用户 mongouser,3.2版本的实例支持另外一个内建用户 rwuser。您可以在 MongoDB 控制台 的数据库管理页面查看系统账号,管理权限以满足业务需求。
rwuser 是唯一使用 MONGODB-CR 认证的用户,URI 示例如下:
mongodb://rwuser:password@10.66.100.186:27017/admin?authMechanism=MONGODB-CR
mongodb://rwuser:password@10.66.100.186:27017/somedb?authMechanism=MONGODB-CR&authSource=admin
mongouser 以及在 MongoDB 控制台 创建的用户均是使用 SCRAM-SHA-1 认证的用户,URI 示例如下:
mongodb://mongouser:password@10.66.100.186:27017/admin
mongodb://mongouser:password@10.66.100.186:27017/somedb?authSource=admin
认证数据库
认证数据库
云数据库 MongoDB 统一使用 admin 库作为登录鉴权的认证数据库,所以在 URI 中端口后面必须加上“/admin”以指定认证库,通过认证后再切换到具体业务数据库进行读写操作,URI 示例:
mongodb://username:password@IP:27017/admin
当然,也可通过直接指定读写目标数据库和额外的认证库参数(authSource=admin)来直达目标数据库,URI 示例:
mongodb://username:password@IP:27017/somedb?authSource=admin
注意:
在官网控制台创建的用户其认证库均为 admin,因此用户登录时需要指定认证库为 admin。用命令行创建的用户,例如在 test 库下建立的用户登录时指定的认证库为 test。
综上,您必须选择一种方式将 admin 作为认证库代入 URI 中。
认证机制
认证机制
云数据库 MongoDB 支持 MONGODB-CR 和 SCRAM-SHA-1 两种认证方式,并且内建了两个默认用户 rwuser 和 mongouser,同时还支持在 云数据库 MongoDB 控制台 创建其他用户。不同的用户采用不同的认证机制。
用户名 | 认证机制 | URI 处理 |
rwuser | MONGODB-CR | 必须加上参数 “authMechanism=MONGODB-CR” |
mongouser 以及在控制台创建的用户 | SCRAM-SHA-1(推荐) | 不用加任何参数 |
读操作的主从优先级
读操作的主从优先级
云数据库 MongoDB 提供了多种连接方式访问实例。如需指定访问从库读,请在 URI 里设置 readPreference 参数,具体取值含义如下:
注意:
业务需要读写分离的时候更建议使用 secondaryPreferred,可用性更高。
取值 | 含义 |
primary | 只读主节点 |
primaryPreferred | 主节点优先,如主节点不可用,则读从节点 |
secondary | 只读从节点,如从节点不可用会报错 |
secondaryPreferred | 从节点优先,如从节点不可用,则读主节点 |
设置优先读取从节点可以根据如下示例拼接 URI:
mongodb://username:password@IP:27017/admin?readPreference=secondaryPreferred