部署 PostgreSQL
PostgreSQL(常称 Postgres)是强大的开源对象关系型数据库系统,以可靠性、丰富功能以及对 SQL 标准的遵循而广受好评。它非常适合需要复杂查询、ACID 合规以及严格数据完整性的应用场景。
Zeabur 让关系型数据库的管理变得轻松。通过 Zeabur,你可以在几秒钟内启动一个可用于生产环境的 PostgreSQL 实例,无需处理复杂的配置文件、存储卷或服务器维护。
你将学到什么
在本教程中,我们将带你完成:
- 从 Zeabur Marketplace 部署 PostgreSQL 服务
- 使用 TablePlus、pgAdmin 或 psql 等外部工具连接数据库
- 将已部署的后端应用连接到 PostgreSQL
阶段 1:部署数据库
步骤 1:创建 PostgreSQL 服务
Zeabur 提供“一键部署”,因此你很少需要手动配置复杂参数。
选项 1:从项目页面创建 PostgreSQL 实例
- 登录 Zeabur Dashboard。
- 点击 "New Project"。
- 选择 "Template"(Marketplace)。
- 搜索
PostgreSQL。
- 选择官方 PostgreSQL 镜像,服务会立即开始部署。
选项 2:从模板页面创建 PostgreSQL 实例
- 登录 Zeabur Dashboard。
- 选择
Features 与 Template。
- 选择或搜索
PostgreSQL。
- 选择
PostgreSQL(通常是官方镜像),点击 deploy 开始部署。
步骤 2:获取连接凭据
- 进入服务的 Instruction 标签页。
- 找到 "Connection" 区域,你会看到两类信息:
- Public (External): 用于 VS Code / 本地应用
- Private (Internal): 用于已部署的应用
- 从 Public 区域记录以下信息:
- Host:(例如
postgres.zeabur.app)
- Port:(通常是
5432 或随机端口)
- Username:(默认通常是
root 或 postgres)
- Password:(点击“眼睛”图标显示)
- Database:(默认是
postgres)
阶段 2:连接数据库
前置条件:准备 Public 连接信息
在打开任何工具之前,请先从 Zeabur Dashboard 准备好连接信息。
- 打开 Zeabur 中的 PostgreSQL 服务。
- 点击 Instruction 标签页。
- 在 "Public"(External)区域可以看到:
- Connection String
- PostgreSQL Connect Command
- PostgreSQL username
- PostgresSQL password
- PostgresSQL database
- PostgreSQL host
- PostgreSQL port
选项 1:使用 VS Code(SQLTools)连接
适合:希望在同一个窗口里写代码并查看数据库的开发者。
步骤 1:安装扩展
- 打开 VS Code 或任意兼容的编辑器。
- 点击左侧栏的 Extensions(
Ctrl+Shift+X 或 Cmd+Shift+X)。
- 搜索并安装:SQLTools。
- 搜索并安装驱动:SQLTools PostgreSQL/Cockroach Driver。
步骤 2:创建连接
- 点击左侧栏出现的 SQLTools 图标(数据库圆柱)。
- 悬停在 “Connections”,点击 "Add New Connection"(带
+ 的圆柱图标)。
- 选择 PostgreSQL。
步骤 3:配置参数
使用 Zeabur 的信息填写表单:
- Connection Name:
Zeabur DB(或任意)
- Connect using:
Server and Port
- Server Address (Host): 填入 Postgresql Host
- Port: 填入 Postgresql Port
- Database: 填入 Postgresql Database(通常为
postgres)
- Username: 填入 Postgresql User
- Password: 填入 Postgresql Password
- SSL: 保持默认(若连接失败可选 "Require")
步骤 4:测试并连接
- 点击 "Test Connection",看到 “Successfully Connected” 即成功。
- 点击 "Save Connection"。
- 在侧边栏右键连接并选择 "Connect"。
- 现在你可以展开树结构查看 Tables、Views、Functions。
选项 2:使用 pgAdmin 4(官方 GUI)连接
适合:使用标准开源管理界面进行更全面的数据库管理。
步骤 1:安装 pgAdmin
- 下载并安装 pgAdmin 4。
- 打开 pgAdmin 4。(注:在浏览器中打开属于正常现象)
步骤 2:注册服务器
- 在左侧树形栏中右键 Servers。
- 选择 Register > Server...
步骤 3:填写凭据
将弹出窗口。你需要填写这些标签页:
- Tab 1: General
- Name: 自定义名称(例如
Zeabur App DB)
- Tab 2: Connection
- Host name/address: 填入 Postgresql Host
- Port: 填入 Postgresql Port
- Maintenance database: 填入 Postgresql Database(通常
postgres)
- Username: 填入 Postgresql User(通常
root)
- Password: 填入 Postgresql Password
- 可选: 勾选 “Save Password”
- Tab 3: Parameters(可选)
- 若遇到 SSL 错误,请到 SSL 标签页将 “SSL mode” 设为
Require 或 Prefer。
步骤 4:连接
- 点击蓝色 Save。
- 数据库将出现在左侧列表中。
- 点击服务器名旁的
> > Databases > postgres > Schemas > public > Tables 查看数据。
阶段 3:连接你的应用(服务间互连)
当你把应用部署到 Zeabur 时,它需要与此数据库通信。建议使用 Private Networking 以获得更好的安全性和性能。
方法 A:简单方式(环境变量)
Zeabur 会自动向同一项目中的其它服务暴露连接字符串。在你的应用服务设置中:
-
打开 Variables 标签页。
-
新增变量 DATABASE_URL(或你的代码使用的名称)。
-
值使用 Zeabur 引用变量:会自动带入安全的内部连接字符串。
${POSTGRES_CONNECTION_STRING}
方法 B:手动方式(指定变量)
如果你需要连接信息的某些字段(或有多个 DB),可使用:
- Host:
${POSTGRES_HOST}(内部主机名,通常以 .zeabur.internal 结尾)
- Port:
${POSTGRES_PORT}
- User:
${POSTGRES_USERNAME}
- Password:
${POSTGRES_PASSWORD}
注意:如果项目里有多个 PostgreSQL 实例,引用变量可能不可靠。此时建议从 Networking 标签页手动复制 “Internal” 的 Hostname 和 Port。
阶段 4:维护与备份
配置(进阶)
如果你需要调整某些数据库设置(例如内存限制或日志):
- 在 Zeabur 打开 Config Editor。
- 编辑
/etc/postgresql/postgresql.conf。
- 提示:Zeabur 已预先配置关键参数,通常不需要修改。
恢复备份
Zeabur 会自动备份。恢复步骤如下:
-
下载: 从 Zeabur 的备份存储下载并解压备份文件,你会获得 data.sql。
-
准备: 确保本地已安装 PostgreSQL 客户端工具。
-
执行: 在 Instructions 中找到 "PostgreSQL Connect Command" 并在终端执行。示例: psql -h postgres.zeabur.app -p 5432 -U root postgres < data.sql
<Your PostgreSQL Connect Command> < data.sql
警告:恢复备份会覆盖现有数据并替换用户密码。如需保留当前密码,请在执行前从 data.sql 中移除 CREATE ROLE 与 ALTER ROLE 语句。