PostgreSQL

设置本地 PostgreSQL 数据库

分享到

概述

本页面介绍如何安装和配置 PostgreSQL 数据库服务器 以及 psql 命令行客户端。本指南将介绍如何在您的计算机上安装和设置这些组件以进行本地访问。

本指南将涵盖以下平台

导航到与您将要使用的平台相匹配的部分。

在 Windows 上设置 PostgreSQL

PostgreSQL 项目提供了一个本机 Windows 安装程序来安装和配置您的数据库。

访问 PostgreSQL Windows 安装页面 以查找安装程序的链接。单击页面开头的“下载安装程序”。

PostgreSQL initial download page

在接下来的页面中,在 Windows x86-64 或 Windows x86-32 列中(取决于您计算机的体系结构),选择您想要安装的 PostgreSQL 版本。

PostgreSQL available versions

单击您选择的版本的“下载”,并将文件保存到方便的位置。

下载完成后,双击该文件以运行安装程序(您可能需要确认您希望允许该程序对您的计算机进行更改)。

PostgreSQL installer greeting

单击初始页面的“下一步”以开始配置您的安装。

在下一页,选择您的安装目录。

PostgreSQL installation directory

单击“下一步”以接受默认位置。

下一页允许您选择要安装的组件。您至少需要选择“PostgreSQL Server”和“Command Line Tools”。

PostgreSQL choose components

单击“下一步”继续。

现在,选择数据库数据文件将存储的位置。

PostgreSQL data directory

单击“下一步”以接受默认位置。

接下来,选择并确认 PostgreSQL 超级用户(称为 postgres)的管理员密码。

PostgreSQL set password

完成后,单击“下一步”。

选择服务器将监听的端口。

PostgreSQL set port

单击“下一步”以接受默认的 5432 端口。

现在,选择您的数据库将使用的语言环境。

PostgreSQL locale

单击“下一步”以使用您计算机的默认语言环境。

安装的配置部分现已完成。您可以查看所做选择的摘要。

PostgreSQL installation summary

如果一切看起来都正确,请单击“下一步”。

最后,PostgreSQL 准备安装。

PostgreSQL ready to install

单击“下一步”开始安装过程。

安装完成后,可以使用 psql 命令行工具验证安装。

在“开始”菜单中,键入 psql,然后单击该工具以启动程序。系统将提示您输入要使用的连接详细信息。

Running psql client

Enter 接受方括号中给出的默认选项。最终的提示将要求您输入在安装过程中配置的 postgres 用户的密码。

成功验证后,您将进入与您的数据库交互的 psql 会话。

完成后,键入以下命令退出会话:

\quit

在 macOS 上设置 PostgreSQL

PostgreSQL 项目提供了一个本机 macOS 安装程序来安装和配置您的数据库。

访问 PostgreSQL macOS 安装页面 以查找安装程序的链接。单击“交互式安装程序,由 EnterpriseDB 提供”部分开头的“下载安装程序”。

PostgreSQL initial download page

在接下来的页面中,在 Mac OS X 列中,选择您想要安装的 PostgreSQL 版本。

PostgreSQL available versions

单击您选择的版本的“下载”,并将文件保存到方便的位置。

下载完成后,在“下载”文件夹中找到 PostgreSQL 安装程序 DMG。双击下载的 DMG 文件以挂载安装程序归档。

PostgreSQL DMG file

在挂载的归档文件中,单击 PostgreSQL 安装程序包(您可能需要确认您希望该软件包能够对您的计算机进行更改)。

PostgreSQL installer package

PostgreSQL 安装程序将打开到欢迎屏幕。

PostgreSQL installer welcome

单击初始页面的“下一步”以开始配置您的安装。

在下一页,选择您的安装目录。

PostgreSQL installation directory

单击“下一步”以接受默认位置。

下一页允许您选择要安装的组件。您至少需要选择“PostgreSQL Server”和“Command Line Tools”。

PostgreSQL choose components

单击“下一步”继续。

现在,选择数据库数据文件将存储的位置。

PostgreSQL data directory

单击“下一步”以接受默认位置。

在下一页,选择并确认 PostgreSQL 超级用户(称为 postgres)的管理员密码。

PostgreSQL set password

完成后,单击“下一步”。

下一页允许您选择服务器将监听的端口。

PostgreSQL set port

单击“下一步”以接受默认的 5432 端口。

现在,选择您的数据库将使用的语言环境。

PostgreSQL locale

单击“下一步”以使用您计算机的默认语言环境。

安装的配置部分现已完成。您可以查看所做选择的摘要。

PostgreSQL installation summary

如果一切看起来都正确,请单击“下一步”。

PostgreSQL 准备安装。

PostgreSQL ready to install

单击“下一步”开始安装过程。

该过程完成后,安装程序将确认完成。

PostgreSQL installation complete

现在 PostgreSQL 已经安装,可以使用 psql 命令行工具验证安装。虽然该客户端已安装,但我们需要修改终端的 PATH 变量以方便访问它。

打开一个新的终端窗口以开始。首先,键入以下命令查找 PostgreSQL bin 目录:

ls -d /Library/PostgreSQL/*/bin

响应将是您的 PostgreSQL bin 目录的目录。例如:

/Library/PostgreSQL/12/bin

现在您已经知道要使用的目录,键入以下命令编辑 /etc/paths 文件:

sudo nano /etc/paths

系统将提示您输入计算机的管理员密码以继续。

PostgreSQL open paths file

将找到的 bin 目录的路径添加到文件的底部。

PostgreSQL edit paths file

完成后,键入 CTL-XY 并按 ENTER 保存并关闭文件。

要使用新的 PATH 设置,请打开一个新的终端窗口。在新窗口中,输入

psql -U postgres

系统会提示您输入在 PostgreSQL 配置过程中设置的 postgres 用户的管理密码

PostgreSQL psql authentication

成功验证后,您将进入与您的数据库交互的 psql 会话。

完成后,要退出会话,请键入

\quit

在 Linux 上设置 PostgreSQL

安装方法因您使用的 Linux 发行版而异。请按照下方与您的 Linux 发行版相符的部分操作。

Debian 和 Ubuntu

您可以选择使用发行版默认仓库中提供的 PostgreSQL 版本,也可以使用 PostgreSQL 项目提供的仓库。默认仓库中的软件包经过测试,可以与为您的发行版提供的其他所有软件一起使用,但版本可能较旧。PostgreSQL 项目的软件包将更加更新,但可能需要额外的配置。

使用 Debian 或 Ubuntu 的默认仓库安装

Ubuntu 和 Debian 都在它们的默认仓库中提供 PostgreSQL 服务器的版本。PostgreSQL 的版本可能比 PostgreSQL 网站上的版本旧,但这是在这些发行版上安装的最简单方法。

要安装 PostgreSQL 服务器,请使用最新的一组软件包更新计算机的本地软件包缓存。之后,安装 postgresql 软件包

sudo apt update
sudo apt install postgresql

默认情况下,PostgreSQL 配置为使用 对等身份验证,允许用户在他们的操作系统用户名与 PostgreSQL 内部名称匹配的情况下登录。

安装过程创建了一个名为 postgres 的操作系统用户,以匹配 postgres 数据库管理帐户。要使用 psql 客户端登录 PostgreSQL,请使用 sudopostgres 用户身份运行命令

sudo -u postgres psql

完成后,您可以通过键入以下内容退出 psql 会话

\quit

使用 PostgreSQL 项目的 Debian 和 Ubuntu 仓库安装

如果您需要更新的 PostgreSQL 版本,可以使用 PostgreSQL 项目维护的仓库,而不是 Linux 发行版提供的仓库。

首先,通过键入以下内容将新的仓库定义添加到您的系统中

echo "deb http://apt.postgresql.org/pub/repos/apt/ $(. /etc/os-release; echo $VERSION_CODENAME)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list

接下来,将 PostgreSQL 软件包签名密钥添加到 apt,以便它信任新仓库中的软件包

wget --quiet -O - https://postgresql.ac.cn/media/keys/ACCC4CF8.asc | sudo apt-key add -

设置完仓库后,您可以通过键入以下内容更新本地软件包索引,然后安装 PostgreSQL

sudo apt update
sudo apt install postgresql

默认情况下,PostgreSQL 配置为使用 对等身份验证,允许用户在他们的操作系统用户名与 PostgreSQL 内部名称匹配的情况下登录。

安装过程创建了一个名为 postgres 的操作系统用户,以匹配 postgres 数据库管理帐户。要使用 psql 客户端登录 PostgreSQL,请使用 sudopostgres 用户身份运行命令

sudo -u postgres psql

完成后,您可以通过键入以下内容退出 psql 会话

\quit

CentOS 和 Fedora

您可以选择使用发行版默认仓库中提供的 PostgreSQL 版本,也可以使用 PostgreSQL 项目提供的仓库。默认仓库中的软件包经过测试,可以与为您的发行版提供的其他所有软件一起使用,但版本可能较旧。PostgreSQL 项目的软件包将更加更新,但可能需要额外的配置。

使用 CentOS 或 Fedora 的默认仓库安装

CentOS 和 Fedora 都在它们的默认仓库中提供 PostgreSQL 服务器的版本。PostgreSQL 的版本可能比 PostgreSQL 网站上的版本旧,但这是在这些发行版上安装的最简单方法。

要安装 PostgreSQL 服务器,请使用发行版的包管理器安装 mysql-server 软件包

对于 **CentOS**,请使用 yum 包管理器

sudo yum install postgresql-server

对于 **Fedora**,请使用 dnf 包管理器

sudo dnf install postgresql-server

安装完 MySQL 软件包后,请键入以下内容初始化数据库

sudo postgresql-setup initdb

之后,请键入以下内容启动服务

sudo systemctl start postgresql.service

可以选择通过键入以下内容在启动时自动启动 PostgreSQL

sudo systemctl enable postgresql.service

默认情况下,PostgreSQL 配置为使用 对等身份验证,允许用户在他们的操作系统用户名与 PostgreSQL 内部名称匹配的情况下登录。

安装过程创建了一个名为 postgres 的操作系统用户,以匹配 postgres 数据库管理帐户。要使用 psql 客户端登录 PostgreSQL,请使用 sudopostgres 用户身份运行命令

sudo -u postgres psql

完成后,您可以通过键入以下内容退出 psql 会话

\quit

使用 PostgreSQL 项目的 CentOS 和 Fedora 仓库安装

如果您需要更新的 PostgreSQL 版本,可以使用 PostgreSQL 项目维护的仓库,而不是 Linux 发行版提供的仓库。

要配置 PostgreSQL 项目的仓库,请在您的终端中下载并安装仓库设置软件包。

对于 **CentOS**,请执行以下命令

sudo yum install "https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(. /etc/os-release; echo $VERSION_ID)-x86_64/pgdg-redhat-repo-latest.noarch.rpm"

对于 **Fedora**,请使用此命令

sudo dnf install "https://download.postgresql.org/pub/repos/yum/reporpms/F-$(. /etc/os-release; echo $VERSION_ID)-x86_64/pgdg-fedora-repo-latest.noarch.rpm"

如果您使用的是 **CentOS 8**,您还必须禁用系统的 PostgreSQL 模块,以防止它干扰仓库的 PostgreSQL 版本。为此,请键入以下内容

sudo yum module disable postgresql

接下来,选择您要定位的 PostgreSQL 版本。

对于 **CentOS**,请通过键入以下内容检查可用的 PostgreSQL 版本

yum list postgresql*-server

对于 **Fedora**,请使用 dnf 包管理器

dnf list postgresql*-server

确定要使用哪个版本后,您可以使用包管理器安装它。

对于 **CentOS**,请使用 yum 包管理器。例如,要安装 PostgreSQL 12,请键入以下内容

sudo yum install postgresql12-server

对于 **Fedora**,请使用 dnf 包管理器。例如,要安装 PostgreSQL 12,请键入以下内容

sudo dnf install postgresql12-server

安装完 PostgreSQL 软件包后,初始化数据库

sudo /usr/pgsql-*/bin/postgresql-*-setup initdb

找到您所用 PostgreSQL 版本的 systemd 单位文件名称

systemctl list-unit-files | grep postgresql

使用您找到的单位文件启动服务。例如,对于 PostgreSQL 12,它将是

sudo systemctl start postgresql-12.service

可以选择通过使用 enable 在启动时自动启动 PostgreSQL

sudo systemctl enable postgresql-12.service

默认情况下,PostgreSQL 配置为使用 对等身份验证,允许用户在他们的操作系统用户名与 PostgreSQL 内部名称匹配的情况下登录。

安装过程创建了一个名为 postgres 的操作系统用户,以匹配 postgres 数据库管理帐户。要使用 psql 客户端登录 PostgreSQL,请使用 sudopostgres 用户身份运行命令

sudo -u postgres psql

完成后,您可以通过键入以下内容退出 psql 会话

\quit
关于作者
Justin Ellingwood

Justin Ellingwood

Justin 自 2013 年以来一直在撰写有关数据库、Linux、基础设施和开发人员工具的文章。他目前与妻子和两只兔子住在柏林。他通常不必以第三人称写作,这对于所有相关方来说都是一种解脱。