如何在 Ubuntu 上安装 PostgreSQL

简介
PostgreSQL,通常简称为 Postgres,是一个开源的对象关系型数据库管理系统。它以其可靠性、功能健壮性以及对 SQL 标准的遵循而赢得了良好的声誉。其关键特性包括可靠的事务处理(ACID 兼容性)和无需读取锁的高并发性,使其成为复杂、数据驱动型应用的热门选择。
本快速入门指南将重点介绍在 Ubuntu 系统上启动并运行 PostgreSQL 服务器的基本步骤。我们将逐步讲解如何安装必要的软件包,使用默认的“角色”系统进行身份验证,以及创建一个新的角色和数据库。如需更深入地了解配置、安全和管理,请参阅完整的教程《如何在 Ubuntu 22.04 上安装和使用 PostgreSQL》。
通过 DigitalOcean Managed Database 简化 PostgreSQL 数据库的创建。只需几分钟即可创建一个 PostgreSQL 数据库,让 DigitalOcean 为您处理数据迁移、升级、维护和安全。
核心要点:
- 您可以使用
apt包管理器在 Ubuntu 上安装 PostgreSQL。sudo apt install postgresql postgresql-contrib命令会安装数据库服务器和一些额外的实用工具。- PostgreSQL 使用“角色”系统进行身份验证。默认情况下,它设置为使用
ident身份验证,这意味着它会将数据库角色与一个匹配的 Linux 系统用户账户关联起来。- 安装过程会创建一个默认的
postgres用户账户。您可以通过运行sudo -u postgres psql以此管理用户身份访问 PostgreSQL 提示符。- 您可以在终端中使用辅助脚本
createuser和createdb来添加新的角色和数据库。或者,您也可以在psqlshell 中使用 SQL 命令CREATE ROLE和CREATE DATABASE,这在设置密码时是必需的。- 远程连接默认是禁用的。要启用它们,您必须更新
postgresql.conf中的listen_addresses设置,在pg_hba.conf中为远程用户和 IP 添加基于主机的身份验证规则(使用像scram-sha-256这样的密码方法),并在防火墙中开放端口5432。- 有两种主要的备份策略。第一种是使用
pg_dump工具进行逻辑备份,它会生成一个 SQL 命令文件来恢复数据库。第二种是使用物理备份和预写日志(WAL)以实现时间点恢复(PITR)的高级策略。
准备
- 一台云服务器
如果没有,可以前往 雨云- 新一代云服务提供商 进行注册,新用户有五折优惠。
全产品线路优化:
- 香港CN2三网直连,延迟低至35ms;
- 美国(CMI+9929),延迟低至140ms;
- 日本东京三网直连,延迟低至60ms;
更有国内:浙江宁波、广东深圳、广东广州、湖北襄阳、江苏宿迁、重庆电信 地区服务器,价格平民,质量优质,CPU强劲。

拥有:云应用、云服务器、游戏云、显卡云、对象存储、裸金属物理机、域名服务、SSL证书、虚拟主机、雨盾CDN 产品!

新用户更有五折券优惠,支持一元试用!点击进行注册
前提条件
要学习本教程,您需要一台已按照我们的Ubuntu 初始服务器设置指南配置好的 Ubuntu 服务器。完成此前提条件教程后,您的服务器应该有一个具有 sudo 权限的非 root 用户和一个基本的防火墙。
步骤 1 — 安装 PostgreSQL
要安装 PostgreSQL,首先刷新您服务器的本地包索引:
$ sudo apt update
然后,安装 postgres 包以及一个 -contrib 包,后者会添加一些额外的实用工具和功能:
$ sudo apt install postgresql postgresql-contrib
您可以通过运行以下命令来检查版本:
$ psql --version
确保服务已启动:
$ sudo systemctl start postgresql.service
步骤 2 — 使用 PostgreSQL 角色和数据库
默认情况下,Postgres 使用一种称为“角色”的概念来处理身份验证和授权。在某些方面,这些角色类似于常规的 Unix 风格的用户和组。
安装后,Postgres 被设置为使用 ident 身份验证,这意味着它将 Postgres 角色与一个匹配的 Unix/Linux 系统账户关联起来。如果 Postgres 中存在一个角色,那么同名的 Unix/Linux 用户名就能够以该角色登录。
安装过程创建了一个名为 postgres 的用户账户,它与默认的 Postgres 角色相关联。有几种方法可以利用这个账户来访问 Postgres。一种方法是在您的服务器上切换到 postgres 账户,运行以下命令:
$ sudo -i -u postgres
然后您可以通过运行以下命令来访问 Postgres 提示符:
$ psql
这将会将您登录到 PostgreSQL 提示符,从这里您可以立即与数据库管理系统进行交互。
要退出 PostgreSQL 提示符,请运行以下命令:
postgres=# \\q
这会带您回到 postgres 用户的 Linux 命令提示符。要返回到您的常规系统用户,请运行 exit 命令:
postgres@server:~$ exit
另一种连接到 Postgres 提示符的方法是直接使用 sudo 以 postgres 账户运行 psql 命令:
$ sudo -u postgres psql
这会直接将您登录到 Postgres,而无需中间的 bash shell。
同样,您可以通过运行以下命令退出交互式 Postgres 会话:
postgres=# \\q
步骤 3 — 创建一个新角色
如果您以 postgres 账户登录,可以通过运行以下命令来创建一个新角色:
postgres@server:~$ createuser --interactive
或者,如果您更喜欢在不切换账户的情况下为每个命令使用 sudo,请运行:
$ sudo -u postgres createuser --interactive
无论哪种方式,该脚本都会提示您一些选项,并根据您的回答执行正确的 Postgres 命令来创建符合您要求的用户。
Output
Enter name of role to add: sammy
Shall the new role be a superuser? (y/n) y
步骤 4 — 创建一个新数据库
Postgres 身份验证系统默认的另一个假设是,对于任何用于登录的角色,该角色都会有一个同名的数据库可以访问。
这意味着,如果您在上一节中创建的用户名为 sammy,那么该角色将默认尝试连接到也名为 “sammy” 的数据库。您可以使用 createdb 命令创建相应的数据库。
如果您以 postgres 账户登录,您可以输入类似以下的内容:
postgres@server:~$ createdb sammy
或者,如果您更喜欢在不切换账户的情况下为每个命令使用 sudo,您可以运行:
$ sudo -u postgres createdb sammy
步骤 5 — 使用 SQL 方法创建新用户和数据库(可选)
createuser 和 createdb 这两个 shell 命令是非常方便的辅助工具。然而,为了获得更多的控制权,您可以直接在 PostgreSQL 中使用 SQL 命令来执行相同的操作。当需要从一开始就设置密码或授予特定权限时,这种方法通常更清晰。
-
首先,以管理员
postgres用户身份连接:$ sudo -u postgres psql进入 PostgreSQL 提示符后,您可以使用
CREATE ROLE和CREATE DATABASE来设置您的新用户和数据库。 -
创建一个新角色(用户):
createusershell 命令是交互式的,而CREATE ROLE命令允许您在一个语句中定义所有内容。要创建一个名为 sammy、可以登录(LOGIN)并有密码的用户,请运行:postgres=# CREATE ROLE sammy WITH LOGIN PASSWORD 'your_strong_password';如果这个用户还需要创建数据库,您可以在创建时同时授予该权限:
postgres=# CREATE ROLE sammy WITH LOGIN PASSWORD 'your_strong_password' CREATEDB;这相当于在交互式辅助工具中对超级用户问题回答“yes”,尽管
SUPERUSER是一个更广泛且更危险的权限。如果用户只需要创建数据库,授予CREATEDB会更安全。 -
创建一个新数据库: 接下来,创建数据库。一个好的做法是将新数据库的所有权分配给您刚刚创建的新角色。
postgres=# CREATE DATABASE sammydb OWNER sammy;如果您已经连接到
sammy数据库,并希望将该数据库上的所有权限授予sammy用户,您可以运行:postgres=# GRANT ALL PRIVILEGES ON DATABASE sammydb TO sammy; -
退出
postgres会话: 现在您可以退出postgres用户的psql提示符了。postgres=# \\q
由于您设置了密码,这个新用户可以使用 ident 以外的方法进行身份验证,这对于远程连接是必需的。
步骤 6 — 使用新角色打开 Postgres 提示符
要使用基于 ident 的身份验证登录,您需要一个与您的 Postgres 角色和数据库同名的 Linux 用户。
如果您没有一个匹配的 Linux 用户,您可以使用 adduser 命令创建一个。您需要从具有 sudo 权限的非 root 账户(即未登录为 postgres 用户)来执行此操作:
$ sudo adduser sammy
一旦这个新账户可用,您可以切换用户并连接到数据库,方法如下:
$ sudo -i -u sammy
$ psql
或者,您可以内联执行:
$ sudo -u sammy psql
假设所有组件都已正确配置,此命令将自动将您登录。
如果您希望您的用户连接到不同的数据库,可以通过指定数据库名称来实现,如下所示:
$ psql -d postgres
登录后,您可以通过运行以下命令检查当前的连接信息:
sammy=# \\conninfo
Output
You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".
安全地启用远程访问
默认情况下,PostgreSQL 只监听来自本地机器(localhost)的连接。要允许其他计算机连接到您的数据库,您必须执行三个步骤:
- 配置 PostgreSQL 以监听其公共 IP 地址。
- 添加一个基于主机的身份验证(HBA)规则,以允许您的用户的远程连接。
- 在您服务器的防火墙中打开端口
5432。
步骤 1: 编辑 postgresql.conf
首先,找到您的主 PostgreSQL 配置文件。在 Ubuntu 上,它通常位于 /etc/postgresql/17/main/postgresql.conf。版本号(例如 17)可能会有所不同。
$ sudo nano /etc/postgresql/17/main/postgresql.conf
在此文件中,找到 listen_addresses 这一行。默认情况下,它被设置为 localhost。
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------# - Connection Settings -listen_addresses = 'localhost' # what IP address(es) to listen on;
将 localhost 更改为 * 以监听所有可用的 IP 地址,或者为了更具体,可以设置为您服务器的公共 IP 地址。
listen_addresses = '*'
保存并关闭文件。
步骤 2: 编辑 pg_hba.conf
接下来,您必须配置“基于主机的身份验证”文件 pg_hba.conf,以告诉 PostgreSQL 如何 验证远程用户。
$ sudo nano /etc/postgresql/17/main/pg_hba.conf
在此文件的底部,添加新的一行以允许来自特定 IP 地址的用户连接。ident 方法不适用于远程 TCP/IP 连接。您必须使用基于密码的方法,如 scram-sha-256 或 md5。
# TYPE DATABASE USER ADDRESS METHOD# Example for remote access:
host sammydb sammy 198.51.100.5/32 scram-sha-256
让我们来分解这行配置:
host: 指定使用 TCP/IP 套接字(网络连接)的连接。sammydb: 数据库名称。sammy: 角色(用户)名称。198.51.100.5/32: 远程机器的 IP 地址。/32表示此规则仅适用于这一个 IP。使用198.51.100.0/24可以允许该子网中的所有 IP。切勿在生产环境中使用0.0.0.0/0。scram-sha-256: 一种安全的、现代的基于密码的身份验证方法。这要求您的用户必须有密码,您可以使用 SQL 方法设置(CREATE ROLE ... PASSWORD ...或ALTER ROLE sammy WITH PASSWORD 'new_password';)。
警告: 切勿在脚本或文档中硬编码密码。上面的 ‘new_password’ 是一个占位符——请始终使用强大、唯一的密码,并安全地管理它(例如,使用密码管理器或环境变量)。避免在版本控制或公共场所共享或存储明文密码。
步骤 3: 开放防火墙并重启服务
更新配置文件后,通过 UFW 允许 5432 端口的流量:
$ sudo ufw allow 5432/tcp
最后,重启 PostgreSQL 服务以应用所有更改:
$ sudo systemctl restart postgresql
现在,您可以从您的远程机器(例如 198.51.100.5)测试连接:
$ psql -h your_server_ip -U sammy -d sammydb
系统会提示您输入为 sammy 角色设置的密码。
备份与恢复
对于任何数据库来说,定期的备份策略都是不可或缺的。PostgreSQL 提供了两种主要的备份方法:逻辑备份和物理备份。
使用 pg_dump 进行逻辑备份
pg_dump 工具通过生成一个包含 SQL 命令的文件来创建“逻辑”备份。当运行这个文件时,它会重新创建数据库、表和数据。
- 优点:灵活,人类可读(作为纯文本),可以恢复到不同的机器架构或 PostgreSQL 主版本上。非常适合单个数据库。
- 缺点:对于非常大的数据库可能会很慢。
备份单个数据库: 自定义格式(-F c)是经过压缩的,并且是大多数用例推荐的格式。
$ pg_dump -U sammy -W -F c -f sammydb.dump sammydb
U sammy: 以 sammy 用户身份连接。W: 提示输入用户密码。F c: 以自定义(压缩)格式输出。f sammydb.dump: 将输出写入名为sammydb.dump的文件。sammydb: 要备份的数据库名称。
从自定义格式的转储中恢复: 您必须使用 pg_restore 工具。如果数据库 newdb 已经存在并且其中有表,则此命令将不起作用。
-
首先,创建一个新的空数据库:
$ createdb -U sammy newdb -
然后,将转储恢复到其中:
$ pg_restore -U sammy -W -d newdb sammydb.dump -
d newdb: 恢复到名为newdb的数据库中。
物理备份与时间点恢复 (PITR)
物理备份是整个数据库集群数据文件的二进制级别副本。此方法与预写日志(WAL)结合使用,以实现时间点恢复(PITR)。
PITR 允许您将数据库恢复到自上次基础备份以来的任何特定时刻(例如,恢复到用户意外删除一个主要表的前五分钟)。
这是一个高级策略,包含两个主要组成部分:
- 基础备份:使用像
pg_basebackup这样的工具对数据库进行完整的物理复制。 - WAL 归档:将数据库配置为持续将其事务日志(WAL 文件)复制到单独的存储位置。
要启用此功能,您必须编辑 postgresql.conf:
wal_level = replica # WAL 归档的最低级别
archive_mode = on # 启用归档
archive_command = 'cp %p /path/to/wal/archive/%f' # 复制 WAL 文件的命令
archive_command 是一个简单的示例;生产环境的设置使用更可靠的工具,如 wal-g 或 pgBackRest 来管理此过程。
安全加固
除了前面讨论的安全远程访问设置外,生产数据库还需要几个额外的安全层。
强制使用 SSL/TLS 连接
如果您通过网络传输敏感数据,则必须加密连接。
-
在
postgresql.conf中启用 SSL:取消注释ssl行并将其设置为on。您还必须提供证书和私钥文件的路径。# - SSL - ssl = on ssl_cert_file = '/etc/ssl/certs/your_server_cert.pem' ssl_key_file = '/etc/ssl/private/your_server_key.key'对于测试,您可以生成自签名证书,但对于生产环境,应使用来自受信任机构的证书。
-
在
pg_hba.conf中强制使用 SSL:要要求远程连接使用 SSL,请将host记录类型更改为hostssl。使用host的连接可以使用 SSL,但不是强制性的。如果hostssl连接不使用 SSL,则会被拒绝。# TYPE DATABASE USER ADDRESS METHOD# 如果不使用 SSL 则拒绝 hostssl sammydb sammy 198.51.100.5/32 scram-sha-256# 允许本地连接不使用 SSL(可选) host all all 127.0.0.1/32 scram-sha-256
最小权限原则
切勿为您的应用程序使用 postgres 超级用户角色。此角色可以绕过所有权限并删除整个数据库集群。
相反,应为每个应用程序或用户创建特定的角色,仅授予他们所需的权限。
示例: 为分析应用程序创建一个只读用户。
-
创建角色。此角色不能登录。
postgres=# CREATE ROLE analytics_user; -
授予其对数据库的
CONNECT访问权限。postgres=# GRANT CONNECT ON DATABASE sammydb TO analytics_user; -
授予其对模式(例如
public模式)的USAGE权限。postgres=# GRANT USAGE ON SCHEMA public TO analytics_user; -
授予其对特定表的
SELECT权限。postgres=# GRANT SELECT ON my_table, another_table TO analytics_user;
审计
您可以通过在 postgresql.conf 中设置参数来记录数据库活动。这对于跟踪更改或调查问题很有用。
| 参数 | 值 | 描述 |
|---|---|---|
log_statement | ddl | 记录所有数据定义语言(DDL)命令,如 CREATE、ALTER 和 DROP。 |
log_statement | mod | 记录所有 DDL 以及 数据操作语言(DML)命令,如 INSERT、UPDATE、DELETE。 |
log_connections | on | 记录所有成功的连接尝试。 |
log_disconnections | on | 记录每个会话的结束,显示其持续时间。 |
要进行更详细的审计,请考虑使用 pgaudit 扩展,它提供了对会话和对象级别活动的细粒度日志记录。
常见设置陷阱
虽然安装过程很简单,但新用户经常会遇到与 PostgreSQL 独特的身份验证模型相关的问题。以下是最常见的陷阱及其解决方案。
陷阱 1: FATAL: Peer authentication failed for user "sammy" (用户 “sammy” 的对等身份验证失败)
这是最常见的错误。当您尝试以某个用户(例如 psql -U sammy)连接,但您当前的 Linux 用户名与请求的 PostgreSQL 角色不匹配时,就会发生此错误。
- 原因: 默认情况下,PostgreSQL 设置为使用
ident身份验证,在pg_hba.conf文件中别名为peer。此方法要求您的操作系统用户名与 PostgreSQL 角色名称匹配才能进行本地连接。 - 解决方案: 不要以您的普通用户身份连接。相反,使用
sudo以匹配的操作系统用户身份运行命令。- 首先,确保名为 sammy 的 PostgreSQL 角色存在(步骤 3)。
- 其次,确保名为 sammy 的 Linux 用户存在(步骤 5)。
- 最后,使用
sudo -u sammy psql进行连接。此命令会自动登录,因为操作系统用户“sammy”与 Postgres 角色“sammy”匹配。
陷阱 2: FATAL: role "sammy" does not exist (角色 “sammy” 不存在)
这是一个更简单的问题。这意味着您正在尝试使用一个尚未在 PostgreSQL 中创建的角色登录。
- 原因: 您可能已经创建了 Linux 用户
adduser sammy,但忘记了创建相应的 PostgreSQL 角色createuser sammy。 - 解决方案: 以默认的
postgres用户身份登录,并如步骤 3 所示创建角色。
陷阱 3: 防火墙阻止连接
如果您已启用防火墙(如前提条件中所建议),它可能会阻止连接。
-
原因: UFW(Uncomplicated Firewall)已激活,但未配置为允许 PostgreSQL 流量。
-
解决方案: 这仅影响远程连接。通过默认 Unix 套接字的本地连接不会被 UFW 阻止。如果您打算启用远程访问,则必须明确允许 PostgreSQL 默认端口 5432 上的流量。
$ sudo ufw allow 5432/tcp仅在您有意且安全地启用远程访问时才运行此命令。
主要设置差异:PostgreSQL vs. MySQL
虽然两者都是关系型数据库,但它们在 Ubuntu 上的初始设置和身份验证模型有显著不同。
| 特性 | PostgreSQL (在 Ubuntu 上) | MySQL (在 Ubuntu 上) |
|---|---|---|
| 默认用户 | 创建一个 postgres 角色。 | 创建一个 root 用户。 |
| 初始认证 | 使用 ident (或 peer) 认证。要求匹配操作系统用户 (sudo -u postgres psql)。默认不设置密码。 | root 用户使用 auth_socket 插件。需要 sudo mysql 登录。使用 mysql_secure_installation 脚本设置 root 密码。 |
| Shell 辅助工具 | 提供 createuser 和 createdb 包装脚本以方便使用。 | 没有直接的 shell 等价物。mysql_secure_installation 脚本用于安全设置,而非用户管理。 |
| 用户概念 | 使用**“角色”**。一个角色可以是用户、组或两者兼具。 | 使用**“用户”**。权限授予用户 (user@host)。 |
| 配置文件 | 配置是分开的:postgresql.conf (用于服务器设置) 和 pg_hba.conf (用于认证规则)。 | 配置集中在 my.cnf (或 /etc/mysql/mysql.conf.d/mysqld.cnf)。 |
| 远程访问 | 默认关闭。需要编辑两个文件 (postgresql.conf, pg_hba.conf) 并设置用户密码。 | 默认关闭 (bind-address = 127.0.0.1)。需要编辑一个文件 (mysqld.cnf) 并运行 GRANT 命令来创建远程用户。 |
主要结论是,PostgreSQL 的设置与本地 Unix 用户和权限紧密相关,这使得它在本地非常安全,但需要更多步骤才能实现远程网络访问。而 MySQL 的模型从一开始就更集中于其 root 用户和密码认证。
常见问题解答
1. 如何检查 PostgreSQL 是否在 Ubuntu 上运行?
您可以使用 systemctl 命令检查 PostgreSQL 服务的状态。
打开您的终端并运行以下命令:
$ sudo systemctl status postgresql.service
如果服务处于活动状态,输出将以绿色显示 active (running)。如果它不活动或失败,它将提供其状态的详细信息。
● postgresql.service - PostgreSQL RDBMSLoaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)Active: active (running) since Wed 2025-10-22 14:30:00 IST; 5min agoMain PID: 12345 (postgres)Tasks: 6 (limit: 4617)Memory: 150.0MCGroup: /system.slice/postgresql.service├─12345 /usr/lib/postgresql/17/bin/postgres -D /var/lib/postgresql/17/main -c config_file=/etc/postgresql/17/main/postgresql.conf
...
2. 如何连接到 PostgreSQL shell?
您可以使用 psql 命令行工具进行连接。默认情况下,PostgreSQL 使用 ident 认证,这意味着它会将数据库角色与匹配的系统用户账户关联起来。
最简单的连接方式是首先切换到 postgres Linux 用户账户,该账户在安装过程中创建,并拥有对数据库的超级用户访问权限。
-
切换到
postgres用户:$ sudo -i -u postgres -
打开 PostgreSQL shell:
$ psql
您将被登录并看到 postgres=# 提示符。要退出 shell,请输入 \\q 并按 Enter。
3. 如何安全地启用远程连接?
启用远程连接需要两个主要的配置更改:更新服务器的监听地址和为远程用户设置身份验证规则。
-
更新
postgresql.conf: 首先,找到您的配置文件。它通常位于/etc/postgresql/<VERSION>/main/postgresql.conf。使用文本编辑器打开此文件:$ sudo nano /etc/postgresql/17/main/postgresql.conf在文件中,找到
listen_addresses这一行。默认情况下,它设置为localhost。要允许来自所有 IP 地址的连接,请将其更改为'*':#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------# - Connection Settings -listen_addresses = '*' # what IP address(es) to listen on;保存并关闭文件。
-
更新
pg_hba.conf: 接下来,编辑位于同一目录下的“基于主机的身份验证”文件pg_hba.conf:$ sudo nano /etc/postgresql/17/main/pg_hba.conf在文件底部添加新的一行,以允许特定用户从特定 IP 地址或范围连接。使用安全的密码方法,如
scram-sha-256(对于旧版本,使用md5)。# TYPE DATABASE USER ADDRESS METHOD# Allow user 'sammy' to connect from '203.0.113.10' using a password host all sammy 203.0.113.10/32 scram-sha-256 -
设置用户密码: 如果您的数据库用户(如
sammy)没有密码,远程身份验证将失败。连接到psql并设置一个密码:postgres=# ALTER USER sammy WITH PASSWORD 'your_secure_password'; -
允许通过防火墙的流量: 确保您的防火墙允许在 PostgreSQL 默认端口
5432上的流量。$ sudo ufw allow 5432/tcp -
重启服务: 最后,通过重启 PostgreSQL 应用所有更改:
$ sudo systemctl restart postgresql
4. Ubuntu 上 PostgreSQL 的默认端口是什么?
PostgreSQL 的默认 TCP 端口是 5432。
这是服务器“监听”新客户端连接的标准端口。如果服务器上激活了防火墙,您必须打开此端口以允许连接,无论是来自本地机器(对于某些配置)还是来自远程客户端。
5. 如何完全卸载 PostgreSQL?
要完全移除 PostgreSQL,包括其软件包、配置文件和数据,您必须首先卸载软件包,然后手动删除目录。
警告: 此过程不可逆,将永久删除您的所有数据库。在继续之前,请备份您需要保存的任何数据。
-
停止 PostgreSQL 服务:
$ sudo systemctl stop postgresql -
卸载软件包: 使用
apt purge来移除 PostgreSQL 软件包及其系统范围的配置文件。$ sudo apt purge postgresql postgresql-contrib postgresql-17如果需要,请将
postgresql-17替换为您的特定版本。 -
移除数据和配置目录:
purge命令不会移除数据库集群数据或主配置目录。您必须手动删除这些:$ sudo rm -rf /etc/postgresql/ $ sudo rm -rf /var/lib/postgresql/
完成这些步骤后,PostgreSQL 将从您的系统中完全移除。
结论
本指南演示了在 Ubuntu 服务器上安装和配置 PostgreSQL 的基本步骤。我们涵盖了软件包安装、使用 ident 身份验证和角色,以及使用 shell 命令和直接 SQL 创建新用户和数据库。我们还探讨了启用远程访问、保护连接和实施基本备份策略的程序。
