# 数据库实例

在 MatrixOne **实例管理平台**中创建实例后，可以从实例详情获取连接信息、登录数据库管理平台，并继续执行连接、监控、终止或恢复等操作。创建前先选择实例类型、云服务商和地区；不同实例类型的计算和计费配置不同。

## 选择实例类型

| 类型 | 说明 |
| --- | --- |
| Serverless | 可按业务自动伸缩计算实例；支持生产使用与免费实例。 |
| 标准实例 | 使用独立、稳定的计算节点规格；计算可包年包月或按量付费，存储按量计费。 |

创建时还需要选择公有云与地区。控制台常见可选区域包括**阿里云 · 华东 1（杭州）**等，实际可选项以创建页显示为准。

## 创建 Serverless 实例

1. 登录账号，进入 **实例管理平台 > 实例**，点击 **+ 创建实例**。
2. 选择实例类型 **Serverless**。
3. 选择云服务商和地区。
4. 配置容量和计费策略：
   - **生产使用**：使用独立可伸缩计算；可以配置**消费限制**（月度或日额度达到后的限制行为）和**保持服务**（达到限制后是否继续提供低性能服务）。计费说明见[实例计费](../billing/matrixone-billing.md)。
   - **免费实例**：每个账户最多 5 个，包含免费 CU 和存储额度。资源用尽后，读写和查看详情等操作会受限，适合体验和学习；可以转为生产实例。
5. 设置访问控制：
   - **管理员（admin）密码**：至少 8 位，包含数字、大写字母和小写字母。
   - **网络策略**：允许所有公网 IP，或选择**允许指定 IP**（推荐）；创建后可以在实例的 **网络策略 > 编辑** 中修改。
6. 设置实例名称，确认右侧总览后点击 **创建实例**。实例状态从**创建中**变为**可用**后，才可以继续连接。
7. 在实例列表中点击 **连接 > 通过第三方工具连接**，复制客户端连接命令。

免费实例可以在实例列表的 **… > 实例类型转换**，或在概览页点击 **实例类型转换** 转为生产实例。转换立即生效；转换后当月是否仍占用免费实例名额，以控制台提示为准。

## 创建标准实例

1. 登录账号，打开 **实例 > + 创建实例**，选择**标准实例**。
2. 选择云服务商和地区。
3. 配置容量：
   - **节点规格**：常见规格包括 8 核 32 GiB、16 核 64 GiB；节点数范围以创建页为准。
   - **存储**：按量付费，按小时计费。
4. 选择计算付费方式：
   - **包年包月**：选择时长和折扣；可以开启**自动续费**，也可以在实例卡片上手动续费。计费说明见[实例计费](../billing/matrixone-billing.md)。
   - **按量付费**：先使用后付费，按小时扣除前一小时费用。
5. 设置 admin 密码和网络策略，要求与 Serverless 实例相同。
6. 设置实例名称并确认创建；包年包月实例会在支付页扣款，默认优先使用代金券。
7. 创建完成后，点击 **连接 > 通过第三方工具连接** 获取连接命令。

除创建页显示的计算费用外，存储、对象存储请求和公网流量等可能按实际用量另计，详见[实例计费](../billing/matrixone-billing.md)。

## 连接实例

### 按工具选择

| 方式 | 说明 |
| --- | --- |
| MySQL 协议客户端 | MySQL Client、Navicat、DBeaver 等。 |
| Java | JDBC / ORM。 |
| Python | 官方或社区驱动。 |
| Go | `go-mysql-driver` 等。 |

各语言驱动的安装和示例见[开发](../../developer/index.md)，本页只说明控制台获取连接信息的方式。

### 按网络选择

| 方式 | 说明 |
| --- | --- |
| 公网 | 配置简单；需要关注安全和稳定性，建议配合 IP 白名单。 |
| 私网 | 通过 VPC 终端节点等私网方式访问，安全性和稳定性更高。 |
| 数据库管理平台 | 在浏览器中进入实例侧的 Web 管理界面。 |

连接信息从实例的**连接**入口获取。网络策略和白名单见创建步骤中的“访问控制”，以及[权限 · MatrixOne](permissions.md)。

## 登录数据库管理平台

在实例列表中找到目标实例，点击 **连接 > 通过云平台连接**，输入用户名和密码进入**数据库管理平台**。

| 用户 | 说明 |
| --- | --- |
| `admin` | 创建实例时设置的高权限用户，也是默认登录用户。 |
| 普通用户 | 需要由有权限的账号创建用户、角色并授予权限。 |

普通用户可以按以下步骤创建（在 admin 会话中执行 SQL）：

1. 创建用户：`create user u2 identified by '……';`
2. 创建角色：`create role if not exists role2;`
3. 将库、表等对象权限授予角色，再将角色授予用户，例如：
   ```sql
   grant all on account * to role2;
   grant all on database * to role2;
   grant all on table *.* to role2;
   grant role2 to u2;
   ```
4. 登录时使用 **`用户名:角色名`** 格式，例如 `u2:role2`；不指定角色时使用 `public`。

权限模型详见[权限 · MatrixOne](permissions.md)。

## 终止或恢复实例

> 终止实例后，平台不会永久保存实例数据。误操作后请尽快恢复。

### 终止实例

1. 打开 **实例 > 可用实例**，在目标实例卡片上点击 **终止**。
2. 确认实例名称。
3. 等待实例从**终止中**变为已终止，并在**终止实例**页签中查看。

终止后会立即断开数据库访问连接。终止状态的数据保留 7 天，超过期限后永久删除。

### 恢复实例

打开 **终止实例** 页签，选择目标实例，点击 **恢复** 并确认。恢复完成后，实例状态回到**可用**。

## 查看实例状态

| 状态 | 含义 | 典型可操作 |
| --- | --- | --- |
| 创建中 | 正在创建。 | 无实例操作。 |
| 可用 | 正常提供服务。 | 终止、连接、监控、查看详情和编辑消费限制。 |
| 限制 | 免费资源用尽、达到消费限额或账户欠费等。 | 终止、监控、查看详情和编辑限制；部分场景仍可连接。 |
| 无效 | 实例异常，无法完整提供服务。 | 终止、监控、查看详情和编辑限制。 |
| 终止中 | 正在终止。 | 可以查看监控。 |
| 已终止 | 已完成终止。 | 可以恢复。 |
| 恢复中 | 正在恢复。 | 无实例操作。 |

“限制”状态常见原因包括：免费 CU 或存储用尽；生产实例达到消费限额且未开启保持服务；达到限额但开启保持服务后以低速运行；账户欠费。
