快速在Ubuntu上安装PostgreSQL – wiki大全


快速在 Ubuntu 上安装 PostgreSQL

PostgreSQL 是一个功能强大、开源的对象关系型数据库系统,以其稳定性、数据完整性和丰富的功能集而闻名。本文章将详细指导您如何在 Ubuntu 系统上快速安装和进行基本配置。

1. 更新系统软件包

在安装任何新软件之前,始终建议更新您的系统软件包列表和已安装的软件包。这确保您拥有最新的安全更新、依赖项和软件包版本。

bash
sudo apt update && sudo apt upgrade -y

sudo apt update 用于刷新可用软件包列表,而 sudo apt upgrade -y 则用于升级所有已安装的软件包,-y 标志表示自动确认所有提示。

2. 安装 PostgreSQL 服务器

Ubuntu 的官方软件包仓库中包含了 PostgreSQL。您可以使用 apt 包管理器来安装 PostgreSQL 服务器及其相关的工具和库。通常,我们还会安装 postgresql-contrib 包,它提供了额外的功能和实用程序。

bash
sudo apt install postgresql postgresql-contrib -y

执行此命令后,apt 将下载并安装 PostgreSQL 服务器。安装过程会自动配置并启动 PostgreSQL 服务。

3. 验证 PostgreSQL 服务状态

安装完成后,您可以检查 PostgreSQL 服务是否已成功启动并正在运行:

bash
sudo systemctl status postgresql

如果服务正常运行,您应该会看到类似以下内容的输出,其中包含 “active (running)” 状态信息:

● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2025-12-22 10:00:00 UTC; 1min ago
Process: 1234 ExecStart=/usr/lib/postgresql/14/bin/pg_ctl -D /var/lib/postgresql/14/main -l logfile start (code=exited, status=0/SUCCESS)
Main PID: 1236 (postgres)
Tasks: 7 (limit: 4618)
Memory: 16.4M
CPU: 43ms
CGroup: /system.slice/postgresql.service
├─1236 /usr/lib/postgresql/14/bin/postgres -D /var/lib/postgresql/14/main -c config_file=/etc/postgresql/14/main/postgresql.conf
├─1237 "postgres: 14/main: checkpointer "
└─1238 "postgres: 14/main: walwriter "

4. 访问 PostgreSQL Shell (psql)

PostgreSQL 安装完成后,系统会自动创建一个名为 postgres 的默认数据库超级用户,以及一个同名的 Linux 系统用户。您可以通过切换到 postgres Linux 用户来访问 PostgreSQL 命令行界面 (psql)。

首先,切换用户:

bash
sudo -i -u postgres

然后,进入 psql shell:

bash
psql

您将看到 psql 提示符,表示您已成功进入数据库:

“`
psql (14.5 (Ubuntu 14.5-0ubuntu0.22.04.1))
Type “help” for help.

postgres=#
“`

要退出 psql shell,只需输入 \q 并按回车键。

5. 基本数据库操作

psql 环境中,您可以执行各种数据库管理任务。以下是一些常用的基本操作:

5.1 设置 postgres 用户的密码

默认情况下,postgres 数据库超级用户的密码是空的。出于安全考虑,强烈建议为其设置一个强密码。

psql shell 中执行以下命令(将 '您的安全密码' 替换为您自己的密码):

sql
ALTER USER postgres WITH PASSWORD '您的安全密码';

5.2 创建新用户 (角色)

通常不建议直接使用 postgres 超级用户进行日常操作。您可以为您的应用程序或特定用途创建新的数据库用户(在 PostgreSQL 中称为“角色”):

sql
CREATE USER your_username WITH PASSWORD 'your_password';

请将 your_username 替换为您希望的用户名,将 your_password 替换为该用户的密码。

5.3 创建新数据库

为您的应用程序创建一个新的数据库:

sql
CREATE DATABASE your_database_name;

请将 your_database_name 替换为您希望的数据库名称。

5.4 授予用户数据库权限

将新创建的数据库的所有权限授予新用户:

sql
GRANT ALL PRIVILEGES ON DATABASE your_database_name TO your_username;

6. 配置远程访问 (可选)

默认情况下,PostgreSQL 配置为只允许来自本地系统的连接(即只能从安装 PostgreSQL 的同一台服务器上访问)。如果您需要从网络上的其他计算机连接到 PostgreSQL 服务器,您需要修改两个主要的配置文件:postgresql.confpg_hba.conf

6.1 修改 postgresql.conf

这个文件控制着 PostgreSQL 服务器的运行时配置。它通常位于 /etc/postgresql/<版本号>/main/postgresql.conf (例如,/etc/postgresql/14/main/postgresql.conf)。

使用您喜欢的文本编辑器(例如 nano)打开它:

bash
sudo nano /etc/postgresql/<版本号>/main/postgresql.conf

在文件中找到 listen_addresses 这一行。默认情况下,它可能被注释掉或设置为 localhost。将其修改为允许所有网络接口连接:

listen_addresses = '*'

或者,如果您只希望 PostgreSQL 监听特定的 IP 地址,可以将其替换为该 IP 地址。

6.2 修改 pg_hba.conf

pg_hba.conf 文件(Host-Based Authentication)控制着客户端的认证方式和权限。它通常与 postgresql.conf 位于同一目录下。

使用文本编辑器打开它:

bash
sudo nano /etc/postgresql/<版本号>/main/pg_hba.conf

在文件的末尾添加一行,以允许来自任何 IP 地址的连接使用 scram-sha-256 密码认证(这是 PostgreSQL 推荐的更安全的认证方法)。根据您的需求,您也可以选择其他认证方法,但 scram-sha-256 是一个好的起点:

host all all 0.0.0.0/0 scram-sha-256

这里的 0.0.0/0 表示允许来自所有 IPv4 地址的连接。为了提高安全性,您应该将其替换为更具体的 IP 地址或 IP 范围(例如,192.168.1.0/24 表示允许来自 192.168.1.x 子网的所有连接)。

6.3 重启 PostgreSQL 服务

在修改了上述配置文件后,您需要重启 PostgreSQL 服务以使更改生效:

bash
sudo systemctl restart postgresql

总结

至此,您已成功在 Ubuntu 系统上安装并配置了 PostgreSQL 数据库服务器。您可以根据您的应用程序需求,创建数据库、用户,并配置远程访问。PostgreSQL 提供了强大的功能和高度的可定制性,是许多项目的理想选择。

滚动至顶部