1. 前言

最近开发小程序,要远程数据库。为了方便,用了阿里云的免费数据库,下面是创建数据库的教程。

3. 创建RDS PostgreSQL实例(控制台操作)

下面是创建RDS PostgreSQL实例的完整流程图,展示了从登录控制台到实例创建成功的关键步骤:

3.1 进入RDS控制台

  1. 登录 阿里云控制台
  2. 根据引导完成实名认证,接着直接跳转到第四步,开始免费试用
    在这里插入图片描述
  3. 在类目搜索栏输入“RDS PostgreSQL” 找到下面产品,选第一个【免费试用】

在这里插入图片描述

3.2 创建实例

  1. 点击免费试用后,会弹出一个配置页面,我都是选择默认数据,然后点击按钮提交展示提交成功。
    在这里插入图片描述

3.3 等待实例创建完成

提交成功,系统将开始创建实例。此过程通常需要5-10分钟。你可以在RDS实例列表页面查看状态,当状态变为“运行中”时,表示实例创建成功。https://rdsnext.console.aliyun.com/rdsList/cn-hangzhou

4. 配置与管理

4.1 查看连接信息

实例创建成功后,点击管理按钮进入实例详情页面。
在这里插入图片描述
在“数据库连接”区域,你可以找到以下关键信息内网地址和外网地址:

  • 内网地址:格式如 rm-xxxxxx.pg.rds.aliyuncs.com:5432。同一VPC内的ECS可通过此地址访问。
  • 外网地址:如果需要从公网访问,需要先申请外网地址(在“数据库连接”标签页操作)。申请后会生成一个外网连接地址。
  • 端口:默认为5432。
    在这里插入图片描述

4.2 管理白名单

安全至关重要。你可以在实例详情页的“白名单与安全组” -> “白名单设置”中,随时修改白名单分组和IP,确保只有受信任的源可以访问数据库。
在这里插入图片描述
点击添加白名单分组按钮。
如何查找我的电脑公网IP,打开PowerShell。输入“curl ipinfo.io/ip”。
接着添加白名单分组弹出输入组内白名单:刚刚查到的公网ip/32
在这里插入图片描述

4.3 创建数据库与账号

  1. 在实例详情页,进入“账号管理”标签页,可以创建新的数据库账号(如应用专用账号),并为其分配特定数据库的读写权限。
    在这里插入图片描述

  2. 点击登录数据库按钮进入“数据库管理”标签页,点击“创建数据库”,为你的应用创建一个新的数据库(如 myapp_db),并选择字符集(如 utf8mb4)。
    在这里插入图片描述
    在这里插入图片描述

5. 连接远程数据库

5.1 通过PostgreSQL客户端连接(命令行)

假设你已获取外网地址和端口,并在白名单中添加了你的本地IP。

# 在本地命令行执行
psql -h <外网地址> -p 5432 -U <高权限账号名> -d postgres

系统会提示你输入密码,输入正确后即可进入PostgreSQL命令行。

5.2 通过图形化工具连接(如Navicat、DBeaver)

  1. 打开你的数据库管理工具。
  2. 新建一个PostgreSQL连接。
  3. 填写连接信息:
    • 主机/地址:填写RDS的外网地址内网地址(取决于你的客户端位置)。
    • 端口:5432
    • 用户名:你创建的高权限账号或应用账号。
    • 密码:对应的密码。
    • 数据库:连接时使用的默认数据库(如 postgres)。
  4. 点击“测试连接”,成功即可保存并连接。

5.3 通过应用程序连接(代码示例)

以下是一个 Python(使用 psycopg2)和 Java(使用 JDBC)的连接示例。

Python 示例:

import psycopg2

# 配置连接参数
connection = psycopg2.connect(
    host='rm-xxxxxx.pg.rds.aliyuncs.com', # 你的RDS内网/外网地址
    port=5432,
    user='myapp_user', # 你的数据库账号
    password='YourStrongPassword123', # 你的数据库密码
    database='myapp_db' # 你要连接的数据库名
)

try:
    with connection.cursor() as cursor:
        # 执行SQL查询
        sql = "SELECT VERSION()"
        cursor.execute(sql)
        result = cursor.fetchone()
        print(f"Database version: {result[0]}")
finally:
    connection.close()

Java 示例:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class RDSDemo {
    public static void main(String[] args) {
        String url = "jdbc:mysql://rm-xxxxxx.mysql.rds.aliyuncs.com:3306/myapp_db?useSSL=false&serverTimezone=UTC";
        String user = "myapp_user";
        String password = "YourStrongPassword123";

        try (Connection conn = DriverManager.getConnection(url, user, password);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT VERSION()")) {

            if (rs.next()) {
                System.out.println("Database version: " + rs.getString(1));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

6. 总结与最佳实践

  • 安全第一:始终使用白名单,避免使用 0.0.0.0/0;为应用创建专属账号,而非一直使用高权限账号。
  • 内网优先:如果应用部署在阿里云ECS上,务必使用RDS的内网地址进行连接,速度更快且免费。
  • 监控与备份:利用RDS控制台提供的监控、备份与恢复功能,定期检查实例健康状态并设置自动备份策略。
  • 弹性伸缩:业务增长时,可以在控制台轻松完成实例规格(CPU/内存)和存储空间的扩容。

至此,你已经成功在阿里云上创建并连接了一个远程PostgreSQL数据库。接下来,你就可以开始部署你的业务数据表和应用了。

更多推荐