# 安装与快速入门

> 在 Windows、Debian 或 Ubuntu 上安装 PostgreSQL 17，管理服务并找到配置文件。

---

LLMS 索引： [llms.txt](/llms.txt)

---

<blockquote class="intro-editorial-note">
<p><strong>Web 版说明。</strong>执行 Debian 或 Ubuntu 软件仓库相关命令前，请先阅读<a href="/#errata-installation">安装勘误</a>：原文中的 <code>lsb_release -cs</code> 少了一个空格，而且软件仓库的配置方式自本书出版后已有变化。</p>
</blockquote>


<span id="intro-chapter-3" class="pdf-anchor"></span><span id="intro-page-26" class="pdf-anchor"></span>

要开始使用 PostgreSQL，需要做哪些准备？本章将介绍如何安装 PostgreSQL，以及如何管理相应的服务。下一章，我们将创建一个简单的数据库，尝试一些基本的 SQL 查询。

我们将使用 PostgreSQL 17 的常规发行版（通常称为“vanilla”，即原版）。安装和配置 PostgreSQL 的过程因操作系统而异：

- 如果你使用 Windows，请继续往下读。

- 如果要在基于 Linux 的 Debian 或 Ubuntu 系统上配置 PostgreSQL，请跳到第 [30](/03-installation-and-quick-start/#intro-section-3-2) 页。

其他操作系统的安装说明可以在线查看：[www.postgresql.org/download.](<https://www.postgresql.org/download>)

你也可以使用 Postgres Pro Standard 17：它与原版 PostgreSQL 完全兼容，包含一些由 Postgres Professional 开发的附加特性，试用或用于教学时免费。如果选择它，请参阅 [postgrespro.com/products/download](<https://postgrespro.com/products/download>) 上的安装说明。

<span id="intro-page-27" class="pdf-anchor"></span>

## Windows {#intro-section-3-1}

### 安装 {#intro-subsection-3-1-1}

下载 PostgreSQL 安装程序，运行后选择安装语言：[postgrespro.com/windows.](<https://postgrespro.com/windows>)

安装程序采用常见的向导界面：如果默认选项符合需要，只需一路点击“下一步”（Next）按钮。下面我们来看看主要步骤。

选择组件（如果不确定如何选择，保留当前选项即可）：

![PostgreSQL 17 的 Windows 安装程序，已选中服务器、客户端、开发和运行时组件。](/images/intro/p027-01.webp)
{#intro-fig-3-1 num="3.1" caption="选择安装组件" .book-original-figure width=422 height=330}

接下来需要指定 PostgreSQL 的安装目录。默认情况下，PostgreSQL 服务器安装在 C:\\Program Files\\PostgreSQL\\17。

<span id="intro-page-28" class="pdf-anchor"></span>

你还可以指定数据目录的位置。

![Windows 安装程序显示数据目录路径和可用磁盘空间。](/images/intro/p028-02.webp)
{#intro-fig-3-2 num="3.2" caption="选择数据目录" .book-original-figure width=422 height=330}

数据库系统中存储的所有信息都会放在这个目录中。因此，如果打算存放大量数据，请确保有足够的磁盘空间。

如果打算存储非英语数据，请务必选择相应的区域设置；如果 Windows 的区域设置已经正确，也可以保留“默认”（Default）。

输入并确认数据库用户 `postgres` 的密码。还应选中“设置环境变量”（Set up environment variables）复选框，以便以当前操作系统用户的身份连接 PostgreSQL 服务器。

其他字段都可以保留默认设置。

<span id="intro-page-29" class="pdf-anchor"></span>

![Windows 安装程序中的 5432 端口、区域设置、postgres 密码、校验和及环境变量设置。](/images/intro/p029-03.webp)
{#intro-fig-3-3 num="3.3" caption="设置服务器连接选项" .book-original-figure width=422 height=330}

如果安装 PostgreSQL 只是为了学习，可以选择“使用默认设置”（Use the default settings），让数据库系统占用更少的内存。

### 服务管理与主要文件 {#intro-subsection-3-1-2}

安装 PostgreSQL 时，系统会注册“postgresql-17”服务。这个服务会在系统启动时，以 Network Service 账户的身份自动运行。如有需要，可以通过 Windows 的标准选项修改服务设置。

要临时停止服务，请在安装时选择的开始菜单子文件夹中运行“停止服务器”（Stop Server）程序。

<span id="intro-page-30" class="pdf-anchor"></span>

![Windows 安装程序，可为 PostgreSQL 服务器选择调优后的参数或默认设置。](/images/intro/p030-04.webp)
{#intro-fig-3-4 num="3.4" caption="选择服务器的默认配置" .book-original-figure width=422 height=330}

要启动服务，请在同一文件夹中运行“启动服务器”（Start Server）程序。

如果启动服务时发生错误，可以查看服务器日志来了解原因。日志文件位于安装时选择的数据库目录下的 log 子目录中（通常是 C:\\Program Files\\PostgreSQL\\17\\data\\log）。日志会定期切换到新文件。你可以根据最后修改日期查找所需的文件，也可以根据文件名查找；文件名包含切换到该文件时的日期和时间。

服务器设置由几个重要的配置文件决定，它们位于数据库目录中。刚开始使用 PostgreSQL 时，无需修改这些文件，但在实际工作中一定会用到。不妨打开看看，文件内都有详尽的说明：

<span id="intro-page-31" class="pdf-anchor"></span>

- postgresql.conf 是主配置文件，包含服务器参数。

- pg\_hba.conf 定义访问规则。出于安全考虑，默认配置只允许从本机访问，并要求进行密码验证。

现在，我们已经可以连接数据库，尝试一些命令和 SQL 查询了。请转到第 [35](/04-trying-sql/#intro-chapter-4) 页的“体验 SQL”一章。

## Debian 和 Ubuntu {#intro-section-3-2}

### 安装 {#intro-subsection-3-2-1}

如果你使用 Linux，需要添加 PGDG（PostgreSQL 全球开发组）软件包仓库。目前支持的 Debian 版本为 10“Buster”、11“Bullseye”和 12“Bookworm”；支持的 Ubuntu 版本为 20.04“Focal”、22.04“Jammy”、23.10“Mantic”和 24.04“Noble”。

在控制台窗口中运行以下命令：

```bash
$ sudo apt-get install lsb-release
$ sudo sh -c 'echo "deb \
http://apt.postgresql.org/pub/repos/apt/ \
$(lsb_release-cs)-pgdg main" \
> /etc/apt/sources.list.d/pgdg.list'
$ wget --quiet -O - \
https://postgresql.org/media/keys/ACCC4CF8.asc \
| sudo apt-key add -
```

添加仓库后，我们来更新软件包列表：

<span id="intro-page-32" class="pdf-anchor"></span>

```bash
$ sudo apt-get update
```

开始安装前，先检查本地化设置：

```bash
$ locale
```

如果打算处理非英语数据，可能需要配置 `LC_CTYPE` 和 `LC_COLLATE` 变量。例如，对于法语，将这两个变量设置为“`fr_FR.UTF8`”比较合适，尽管“`en_US.UTF8`”也可能适用：

```bash
$ export LC_CTYPE=fr_FR.UTF8
$ export LC_COLLATE=fr_FR.UTF8
```

还应确认操作系统已安装所需的区域设置：

```bash
$ locale -a | grep fr_FR
fr_FR.utf8
```

如果没有安装，请按以下方式生成：

```bash
$ sudo locale-gen fr_FR.utf8
```

现在可以开始安装了：

```bash
$ sudo apt-get install postgresql-17
```

这是最后一步；安装命令完成后，PostgreSQL 就已安装并启动。要检查服务器是否可用，请运行：

```bash
$ sudo -u postgres psql -c 'select version()'
```

如果一切顺利，就会返回当前的 PostgreSQL 版本。

<span id="intro-page-33" class="pdf-anchor"></span>

### 服务管理与主要文件 {#intro-subsection-3-2-2}

安装 PostgreSQL 时，系统会创建一个专用用户 `postgres`。所有服务器进程都以该用户的身份运行，所有数据库文件也都属于该用户。PostgreSQL 会在操作系统启动时自动启动。在默认设置下，这不会带来什么问题：如果你没有使用数据库服务器，它只会消耗很少的系统资源。如果决定禁用自动启动，请运行：

```bash
$ sudo systemctl disable postgresql
```

要临时停止数据库服务，请输入：

```bash
$ sudo systemctl stop postgresql
```

可以按以下方式启动服务：

```bash
$ sudo systemctl start postgresql
```

也可以检查服务的当前状态：

```bash
$ sudo systemctl status postgresql
```

如果服务启动失败，请查看服务器日志了解详情。仔细查看 /var/log/postgresql/postgresql-17-main.log 中最新的日志记录。

数据库中存储的所有信息都位于 /var/lib/postgresql/17/main/ 目录下。如果打算存放大量数据，请确保有足够的磁盘空间。

<span id="intro-page-34" class="pdf-anchor"></span>

服务器设置由几个配置文件决定。刚开始使用时，无需编辑所有这些文件，但不妨先看看，因为以后一定会用到：

- /etc/postgresql/17/main/postgresql.conf 是主配置文件，包含服务器参数。

- /etc/postgresql/17/main/pg\_hba.conf 文件定义访问设置。出于安全考虑，默认配置只允许从本机访问，并且必须使用与当前操作系统用户同名的数据库用户身份。

现在，该连接数据库，尝试 SQL 了。

<span id="intro-page-35" class="pdf-anchor"></span>
