访问实例

最近更新时间:2019-08-21 17:31:47

实例初始化后,可以通过 MongoDB shell 或者各语言驱动进行访问数据库,进行各种管理操作。需要使用 CVM 通过内网进行访问,暂不支持外网访问方式。

详细说明

客户端版本

连接腾讯云 MongoDB 服务最低驱动版本需要3.2,请尽量使用最新版的客户端驱动以保证最好的兼容性,包括 shell 套件、java jar 包、php 扩展、nodejs 模块等,具体请参见 MongoDB 官网驱动介绍

MongoDB shell 方式

mongo shell 是 MongoDB 自带的一种交互式 JavaScript shell。可在 shell 中使用命令行与 MongoDB 实例交互。您可以使用 mongo shell 查询和更新数据或执行管理操作。mongo shell 是 MongoDB 发行版的一部分,您需要先下载或者安装 MongoDB,然后再使用 mongo shell 连接至您的 MongoDB 实例。MongoDB 发行版下载请参见 下载地址,具体连接步骤如下:

    cd <mongodb installation dir>
    ./bin/mongo -umongouser -plxh2081* 172.16.0.56:27017/admin
说明:

上例中,-u 参数指定用户名,-p 参数指定密码,172.16.0.56和27017分别指定 MongoDB 实例的 IP 和端口。

URI 方式

MongoDB 服务可以用传统的传参的方式进行连接,同时大部分的驱动程序也支持 URI 形式进行连接。MongoDB 官方推荐使用 URI 的方式连接 MongoDB 服务。典型的 URI 如下:

例1

mongodb://username:password@IP:27017/admin

例2

mongodb://username:password@IP:27017/somedb?authSource=admin

例3

mongodb://username:password@IP:27017/somedb?authSource=admin&readPreference=secondaryPreferred

URI 组成的各个部分解释如下:

组成部分 含义 是否必须
mongodb:// 一个特定的字符串,表示 MognoDB 协议 必须
username 用于登录 MongoDB 服务的用户名 必须,参见本页 默认用户名
password 用于登录 MongoDB 服务的用户密码 必须
IP:27017 MongoDB 服务 IP 和端口 必须
/admin 要认证的数据库,腾讯云 MongoDB 固定为 admin 必须,参见本页 认证数据库
authMechanism=MONGODB-CR 认证机制 参见本页 认证机制
authSource=admin 身份认证所用库,腾讯云 MongoDB 固定为 admin 必须,参见本页 认证数据库
readPreference=secondaryPreferred 可以设置优先读从库 非必须,参见本页 读操作的主从优先级

这里只是列举了一部分 MongoDB 连接 URI 的参数,更多内容请参考 MongoDB 官网文档

默认用户

根据腾讯云 MongoDB 发布版本而异,对于最新生产的实例,我们內建了 “rwuser” 和 “mongouser” 两个默认用户。较老实例只有 rwuser(对于这批实例我们会进行升级,升级之前会联系您)。您也可以使用腾讯云 MongoDB 控制台进行账号和权限管理以满足您的业务需要。

rwuser(MONGODB-CR 认证)URI 示例

rwuser 是唯一使用 MONGODB-CR 认证的用户

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(SCRAM-SHA-1 认证)URI 示例

mongouser 以及在云控制台创建的用户都使用 SCRAM-SHA-1 认证

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 作为认证库代入 URI 中。

认证机制

MongoDB 支持多种认证机制,目前官方推荐的是 “SCRAM-SHA-1”。
腾讯云 MongoDB 支持 “MONGODB-CR” 和 “SCRAM-SHA-1” 两种认证方式。
前文说道,腾讯云 MongoDB 内建了两个默认用户 “rwuser” 和 “mongouser”,同时还可以在腾讯云 MongoDB 控制台创建额外的用户,这些用户被分成了两类,分别采用不同的认证机制,分类如下:

用户名 认证机制 URI 处理
rwuser MONGODB-CR 必须加上参数 “authMechanism=MONGODB-CR”
mongouser 以及在云控制台创建的用户 SCRAM-SHA-1(推荐) 不用加任何参数

读操作的主从优先级

腾讯云 MongoDB 提供了一个负载均衡 IP 用于访问整个副本集,如果需要指定访问从库读请在 URI 里设置 “readPreference” 参数,具体取值含义如下:

取值 含义 是否默认
primary 只读主节点 默认方式
primaryPreferred 主节点优先,如主节点不可用,则读从节点 -
secondary 只读从节点,如从节点不可用会报错 -
secondaryPreferred 从节点优先,如从节点不可用,则读主节点 -

设置优先读取从节点可以按示例拼接 URI:

mongodb://username:password@IP:27017/admin?readPreference=secondaryPreferred

各语言示例

Shell

Shell 连接示例

PHP

PHP 连接示例

Node.js

Node.js 连接示例
mongoose 示例

Java

Java 连接示例

Python

Python 连接示例

重连机制

重连机制