> ## 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.

# 如何部署你的第一个托管数据库

> 分步教程：在 Square Cloud 上托管一个 MongoDB、PostgreSQL、MySQL 或 Redis 托管数据库，并从你的应用代码连接到它。

## 简介

本教程将带你在几分钟内从零开始，得到一个上线并已连接的数据库：从控制面板创建实例、获取其连接字符串，然后从你自己的代码连接到它。

### 前置条件

* **Square Cloud 账户**：通过[注册页面](https://squarecloud.app/zh/signup)创建你的账户。
* **有效的 Standard 套餐或更高级别**：托管数据库需要**有效的 Standard 套餐或更高级别**。查看[可用套餐](/zh/platform/plans)，选择适合你工作负载的档位。

## 第一步：选择一个引擎

Square Cloud 提供四种托管数据库引擎，均已预先配置，随时可以连接使用：

|     引擎     |   版本   |
| :--------: | :----: |
| PostgreSQL | 17.x.x |
|   MongoDB  |  8.x.x |
|    MySQL   |  9.x.x |
|    Redis   |  7.4.x |

本教程使用 **PostgreSQL**，但相同的控制面板流程适用于上面的每一种引擎。

## 第二步：创建数据库

<Steps>
  <Step title="创建一个新的数据库实例">
    前往[数据库](https://squarecloud.app/zh/dashboard/databases)页面，点击 "Create Database" 按钮。
  </Step>

  <Step title="设置你的数据库实例">
    选择 **PostgreSQL**（或你在第一步中选择的引擎），并填写所需信息，例如数据库名称和 RAM。
  </Step>

  <Step title="完成实例创建">
    点击 "Create" 按钮，并等待数据库创建完成。
  </Step>
</Steps>

## 第三步：获取连接字符串

数据库准备就绪后，从[数据库](https://squarecloud.app/zh/dashboard/databases)页面打开它。连接详情 —— host、port、用户名、密码和连接 URL —— 都会显示在数据库控制面板中，同时还有你连接时需要用到的 TLS 证书。

<Note>Square Cloud 数据库仅接受 SSL/TLS 连接。请参见[我如何连接到我的数据库](/zh/services/databases#我如何连接到我的数据库)，了解不同客户端如何使用该证书。</Note>

## 第四步：从你的代码连接

拿到连接字符串后，使用你所用语言的 PostgreSQL 客户端进行连接。

<Tabs>
  <Tab title="Node.js">
    安装 [`pg`](https://www.npmjs.com/package/pg) 包：

    ```bash theme={null}
    npm install pg
    ```

    连接并通过一个简单的查询进行验证：

    ```javascript index.js theme={null}
    import fs from "node:fs";
    import { Client } from "pg";

    const cert = fs.readFileSync("certificate.pem").toString();

    const client = new Client({
      connectionString: process.env.DATABASE_URL, // postgresql://user:password@host:port/dbname
      ssl: { ca: cert, cert: cert, key: cert },
    });

    await client.connect();
    const result = await client.query("SELECT 1");
    console.log("Connected! Result:", result.rows[0]);
    await client.end();
    ```
  </Tab>

  <Tab title="Python">
    安装 [`psycopg2`](https://pypi.org/project/psycopg2-binary/)：

    ```bash theme={null}
    pip install psycopg2-binary
    ```

    连接并通过一个简单的查询进行验证：

    ```python main.py theme={null}
    import os
    import psycopg2

    conn = psycopg2.connect(
        os.environ["DATABASE_URL"],  # postgresql://user:password@host:port/dbname
        sslmode="verify-ca",
        sslrootcert="certificate.pem",
        sslcert="certificate.pem",
        sslkey="certificate.pem",
    )
    cur = conn.cursor()
    cur.execute("SELECT 1")
    print("Connected! Result:", cur.fetchone())
    cur.close()
    conn.close()
    ```
  </Tab>
</Tabs>

如果查询返回了结果而不是抛出连接错误，说明你的应用已成功与数据库通信。

<Warning>切勿在源代码中硬编码连接字符串。请通过你的[配置文件](/zh/getting-started/config-file)或控制面板将其设置为环境变量（`DATABASE_URL`），这样凭据就不会出现在你的仓库中。</Warning>

## 你的数据库已上线

现在你已经拥有一个正在运行、并可从代码访问的托管数据库。接下来你可以：

<CardGroup cols={2}>
  <Card title="部署一个使用它的应用" icon="server" href="/zh/tutorials/how-to-deploy-your-website">
    在 Square Cloud 上托管连接到该数据库的应用。
  </Card>

  <Card title="快照" icon="camera" href="/zh/cli-reference/commands/database/snapshot">
    通过 CLI 创建和恢复数据库快照。
  </Card>
</CardGroup>

## 联系我们

如果你仍然遇到**技术问题**，我们的**专业支持团队**可以为你提供帮助。[**联系我们**](https://squarecloud.app/zh/support)，我们很乐意协助你解决任何问题 —— 支持质量正是开发者给予 Square Cloud [**4.9/5 评分（共 402 条评价）**](https://www.trustpilot.com/review/squarecloud.app)（Google 与 Trustpilot）的重要原因之一。
