> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# 用 CLI 管理数据库

> 用 squarecloud db 创建、查看、调整、启动、停止和删除 Square Cloud 数据库，并打印或轮换其 TLS 证书和密码。

`squarecloud db` 用于管理你账户中的 MongoDB、MySQL、PostgreSQL 和 Redis 数据库。它也可以写作 `squarecloud database`。

数据库没有配置文件，因此 `[dbID]` 要么是你传入的 ID，要么在终端中省略时由你从数据库选择器中选择。可以用 [`squarecloud db list`](#squarecloud-db-list) 查找 ID。

## `squarecloud db create`

```bash 用法 theme={"system"}
squarecloud db create --name <name> --memory <MB> --type <engine> --version <version> [--json]
```

| 标志 | 说明 |
| - | - |
| `--name <name>` | 数据库名称，1 到 32 个字符。 |
| `--memory <MB>` | 分配的内存，单位为 MB。 |
| `--type <engine>` | `mongo`、`mysql`、`redis` 或 `postgres`。 |
| `--version <version>` | 引擎版本：主版本号（例如 PostgreSQL 的 `17` 或 MongoDB 的 `8`），或完整版本号。 |

四个标志均为必填：缺少时，该命令会改为打印帮助信息。创建数据库需要 Standard、Pro 或 Enterprise 套餐。

```bash theme={"system"}
squarecloud db create --name my-db --memory 1024 --type postgres --version 17
```

```bash 输出 theme={"system"}
✓ Database my-db (<dbID>) created successfully
Save the password now: it is shown only once and cannot be recovered.
  PASSWORD: <password>
  URL: <connection URL>
```

<Warning>
  密码只显示一次。`db info` 不会再次显示它；如果丢失，请用 [`db credentials reset password`](#squarecloud-db-credentials-reset) 轮换密码。
</Warning>

使用 `--json` 时，它会以 JSON 格式打印所创建的数据库，其中包含密码和连接 URL。

## `squarecloud db list`

```bash 用法 theme={"system"}
squarecloud db list [--json]
```

打印你账户中每个数据库的名称、ID、引擎、内存和集群。

## `squarecloud db info`

```bash 用法 theme={"system"}
squarecloud db info [dbID] [--json]
```

显示数据库的 ID、名称、引擎、内存、端口、集群、拥有者和创建日期。

## `squarecloud db update`

```bash 用法 theme={"system"}
squarecloud db update [dbID] [--name <name>] [--memory <MB>]
```

| 标志 | 说明 |
| - | - |
| `--name <name>` | 新的数据库名称。 |
| `--memory <MB>` | 新的分配内存，单位为 MB。 |

重命名数据库或更改其内存。至少传入这两个标志中的一个：两者都没有时，该命令会改为打印帮助信息。

```bash theme={"system"}
squarecloud db update <dbID> --memory 2048
```

## `squarecloud db start`

```bash 用法 theme={"system"}
squarecloud db start [dbID]
```

启动一个已停止的数据库。如果它已在运行，CLI 会说明这一点（`It is already running.`）并以退出码 0 退出。

## `squarecloud db stop`

```bash 用法 theme={"system"}
squarecloud db stop [dbID]
```

停止一个正在运行的数据库。如果它已停止，CLI 会说明这一点（`It is already stopped.`）并以退出码 0 退出。

## `squarecloud db status`

```bash 用法 theme={"system"}
squarecloud db status [dbID] [--all] [--raw] [--json]
```

| 标志 | 说明 |
| - | - |
| `--all` | 显示所有数据库而不是单个数据库：数据库 ID、是否在运行、CPU 和内存。 |
| `--raw` | 以 JSON 格式打印原始数值统计，而不是表格。 |

打印数据库 ID、CPU 使用率、内存、磁盘和状态。

## `squarecloud db metrics`

```bash 用法 theme={"system"}
squarecloud db metrics [dbID] [--json]
```

打印数据库过去 24 小时的 CPU 使用率、RAM 使用率和网络流量，每 5 分钟一个数据点、一行。

## `squarecloud db credentials certificate`

```bash 用法 theme={"system"}
squarecloud db credentials certificate [dbID]
```

打印数据库的 TLS 证书，客户端通过 TLS 连接时需要用到它。

```bash theme={"system"}
squarecloud db credentials certificate <dbID> > certificate.pem
# 把证书保存到文件。
```

## `squarecloud db credentials reset`

```bash 用法 theme={"system"}
squarecloud db credentials reset <password|certificate> [dbID] [-y]
```

| 标志 | 说明 |
| - | - |
| `-y`, `--yes` | 跳过确认提示。 |

在 `y/N` 确认后轮换密码或 TLS 证书。旧的密码或证书会立即失效，因此请更新所有使用它的客户端。新密码只打印一次；轮换证书后，请用 `db credentials certificate` 获取新证书。

```bash theme={"system"}
squarecloud db credentials reset password <dbID>
```

## `squarecloud db delete`

```bash 用法 theme={"system"}
squarecloud db delete [dbID] [-y]
```

| 标志 | 说明 |
| - | - |
| `-y`, `--yes` | 跳过确认提示。 |

<Warning>
  删除数据库是永久性的。如需保留数据副本，请先运行 [`squarecloud db snapshot create --download`](/zh/cli-reference/snapshots#squarecloud-db-snapshot-create)。
</Warning>

删除前会询问 `Delete the database <dbID>? This action is irreversible [y/N]`。

## 相关内容

| 命令 | API | JavaScript SDK | VS Code |
| - | - | - | - |
| `create` | [`POST /v2/databases`](/zh/api-reference/endpoint/databases/create) | [`api.databases.create()`](/zh/sdks/js/databases) | [创建数据库](/zh/vscode-extension/features#数据库) |
| `list` | [`GET /v2/users/me`](/zh/api-reference/endpoint/users/me) | [`api.account.me()`](/zh/sdks/js/client) | [数据库部分](/zh/vscode-extension/features#数据库) |
| `info` | [`GET .../{database_id}`](/zh/api-reference/endpoint/databases/info) | [`api.databases.get()`](/zh/sdks/js/databases) | |
| `update` | [`PATCH .../{database_id}`](/zh/api-reference/endpoint/databases/edit) | [`api.databases.update()`](/zh/sdks/js/databases) | |
| `start` | [`POST .../start`](/zh/api-reference/endpoint/databases/start) | [`api.databases.start()`](/zh/sdks/js/databases) | [启动](/zh/vscode-extension/features#数据库) |
| `stop` | [`POST .../stop`](/zh/api-reference/endpoint/databases/stop) | [`api.databases.stop()`](/zh/sdks/js/databases) | [停止](/zh/vscode-extension/features#数据库) |
| `status` | [`GET .../status`](/zh/api-reference/endpoint/databases/status) | [`api.databases.status()`](/zh/sdks/js/databases) | |
| `status --all` | [`GET /v2/databases/status`](/zh/api-reference/endpoint/databases/status-all) | [`api.databases.statusAll()`](/zh/sdks/js/databases) | |
| `metrics` | [`GET .../metrics`](/zh/api-reference/endpoint/databases/metrics) | [`api.databases.metrics()`](/zh/sdks/js/databases) | |
| `credentials certificate` | [`GET .../credentials/certificate`](/zh/api-reference/endpoint/databases/credentials/get_certificate) | [`api.databases.certificate()`](/zh/sdks/js/databases) | [下载 TLS 证书](/zh/vscode-extension/features#数据库) |
| `credentials reset` | [`POST .../credentials/reset`](/zh/api-reference/endpoint/databases/credentials/reset) | [`api.databases.resetCredentials()`](/zh/sdks/js/databases) | |
| `delete` | [`DELETE .../{database_id}`](/zh/api-reference/endpoint/databases/delete) | [`api.databases.delete()`](/zh/sdks/js/databases) | [删除](/zh/vscode-extension/features#数据库) |

数据库的 snapshot 请参阅 [Snapshot](/zh/cli-reference/snapshots#squarecloud-db-snapshot-create)。
