PostgreSQL 安装:综合分步指南
PostgreSQL,通常简称为 Postgres,是当今最先进、最受尊敬的开源关系数据库管理系统 (RDBMS) 之一。它以其成熟的架构、可靠性、数据完整性、强大的功能集和高性能而闻名,是满足从小型个人项目到大型企业应用程序需求的理想选择。它遵守 SQL 标准并具有广泛的可扩展性,使其成为开发人员和数据专业人员的强大而灵活的工具。
成功安装 PostgreSQL 是利用其功能的第一步。虽然具体过程可能因您的操作系统而略有不同,但本指南提供了一个全面的分步 walkthrough,涵盖了初始设置、基本配置以及重要的安装后步骤。遵循这些说明,您将确保一个平稳且安全的 PostgreSQL 环境,为开发和部署做好准备。
先决条件
在开始安装过程之前,请确保您的系统满足这些基本要求:
- 管理员权限:在 Linux/macOS 上,您需要
sudo权限;在 Windows 上,您需要管理员权限才能安装软件和配置系统服务。 - 互联网连接:下载安装包所需。
- 足够的磁盘空间:虽然初始安装相对较小,但您的数据库会增长。请确保您有足够的磁盘空间用于数据。
Linux 安装
Linux 发行版通常通过其默认软件包存储库提供 PostgreSQL,从而简化了安装。
Debian/Ubuntu
对于像 Ubuntu 这样的 Debian 系统,您可以使用 apt 安装 PostgreSQL。
- 更新软件包列表:始终先更新包管理器列表,以确保您获得最新可用的软件包。
bash sudo apt update -
安装 PostgreSQL:安装
postgresql包,该包通常包含服务器、客户端实用程序和文档。您可以指定版本(例如postgresql-16),或者仅使用postgresql来安装默认版本。
bash sudo apt install postgresql postgresql-contrib
postgresql-contrib包提供了额外的实用程序和功能。注意:在 Debian/Ubuntu 上,PostgreSQL 服务通常在安装后自动启动,并且会创建一个默认的
postgres用户(系统用户和数据库用户)。 -
验证安装:检查服务状态。
bash sudo systemctl status postgresql
您应该看到指示其为active (exited)或active (running)的输出。如果主服务单元管理多个作为独立进程运行的集群,则exited是正常的。
RHEL/CentOS/Fedora
对于基于 Red Hat 的系统,请使用 dnf(或较旧的 CentOS/RHEL 版本使用 yum)。
- 安装 PostgreSQL 存储库:PostgreSQL 提供自己的存储库,其中包含比操作系统默认存储库更新的版本。建议使用此存储库来获取最新的稳定版本。
bash sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm # 对于 EL-9,使用:sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm # 如有必要,请将 EL-8-x86_64 替换为您的特定操作系统版本和体系结构。 - 禁用默认 PostgreSQL 模块(如果适用):某些 RHEL/CentOS 版本带有默认的 PostgreSQL 模块。禁用它以避免与 PGDG 存储库冲突。
bash sudo dnf -qy module disable postgresql - 安装 PostgreSQL:安装服务器和 contrib 包。将
16替换为您所需版本。
bash sudo dnf install -y postgresql16-server postgresql16-contrib -
初始化数据库集群:与 Debian/Ubuntu 不同,在基于 RHEL 的系统上,您通常需要手动初始化数据库集群。
bash sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
请根据您安装的版本调整路径/usr/pgsql-16/bin和postgresql-16-setup。 -
启动并启用 PostgreSQL 服务:启动服务并配置它以在启动时运行。
bash sudo systemctl enable postgresql-16 sudo systemctl start postgresql-16 - 验证安装:检查服务状态。
bash sudo systemctl status postgresql-16
macOS 安装
在 macOS 上,Homebrew 是安装 PostgreSQL 推荐且最简单的方法。
-
安装 Homebrew(如果您尚未安装):
bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
按照屏幕上的说明操作,包括将 Homebrew 添加到您的PATH。 -
安装 PostgreSQL:使用 Homebrew 安装 PostgreSQL。您可以指定版本(例如
postgresql@16),或默认安装最新稳定版本。
bash brew install postgresql -
启动 PostgreSQL 服务:Homebrew 将 PostgreSQL 安装为后台服务。
bash brew services start postgresql
要停止它:brew services stop postgresql
要重启它:brew services restart postgresql -
验证安装:检查
psql是否可用并已连接。
bash psql -V
连接到默认数据库:
bash psql postgres提示:为了获得可视化、基于应用程序的体验,请考虑 Postgres.app,它提供了一种无需命令行即可运行和管理 PostgreSQL 的简单方法。
Windows 安装
在 Windows 上,EnterpriseDB (EDB) 图形安装程序是最常见且推荐的方法。
-
下载安装程序:访问官方 PostgreSQL 下载页面(www.postgresql.org/download/windows/)并下载适用于您 Windows 版本的最新 EDB 安装程序。
-
运行安装程序:执行下载的
.exe文件。安装向导将引导您完成整个过程。- 安装目录:选择 PostgreSQL 的安装位置(例如
C:\Program Files\PostgreSQL\16)。 - 数据目录:选择数据库文件的位置(例如
C:\Program Files\PostgreSQL\16\data)。这一点很重要,理想情况下应放在快速可靠的磁盘上。 postgres超级用户的密码:为默认的postgres数据库超级用户设置一个强密码。请记住此密码,因为您将需要它来进行初始连接。- 端口:默认的 PostgreSQL 端口是
5432。通常可以将其保留为默认值,除非存在冲突。 - 区域设置:选择数据库集群的默认区域设置。
- 安装目录:选择 PostgreSQL 的安装位置(例如
-
Stack Builder:安装完成后,EDB 安装程序可能会启动 Stack Builder。此工具可帮助安装额外的驱动程序、工具和扩展(如
pgAdmin 4)。强烈建议安装pgAdmin 4,以便通过图形界面管理您的数据库。 -
验证安装:安装后,您可以打开
pgAdmin 4(通常在开始菜单的“PostgreSQL 16”或类似名称下找到),并尝试使用postgres超级用户和您设置的密码连接到本地服务器。
初始配置和安装后步骤
安装 PostgreSQL 后,这些步骤对于建立功能完善且安全的设置至关重要。
1. 设置 PATH 环境变量(可选,主要适用于 Windows/macOS,如果找不到 psql)
为了方便地从任何终端位置运行 psql 和其他 PostgreSQL 二进制文件,请将 PostgreSQL 的 bin 目录添加到系统的 PATH。
- Linux:通常由包管理器处理,但如果没有,请将
/usr/pgsql-X.Y/bin(RHEL) 或/usr/lib/postgresql/X.Y/bin(Debian/Ubuntu) 添加到您的PATH。 - macOS (Homebrew):
brew会自动处理此问题。 - Windows:在 EDB 安装过程中,有一个添加到
PATH的选项。如果未选择,您可以通过系统属性 > 环境变量手动添加C:\Program Files\PostgreSQL\16\bin(调整版本)。
2. 访问 psql 终端
psql 是 PostgreSQL 的命令行界面,对于管理和查询至关重要。
-
Linux/macOS:切换到
postgres系统用户(安装期间创建)。
bash sudo -i -u postgres psql
现在您已作为postgres用户连接到postgres数据库。输入\q退出。 -
Windows:从开始菜单打开
SQL Shell (psql)(PostgreSQL 16 > SQL Shell (psql))。它会提示输入服务器详细信息和postgres用户的密码。
3. 创建新的数据库用户和数据库
最佳实践是不要将 postgres 超级用户用于日常应用程序使用。请创建一个新的专用用户和数据库。
- 以
postgres超级用户身份登录(如上所示)。 -
创建一个新用户(角色):
sql CREATE USER myuser WITH PASSWORD 'strong_password';
提示:替换myuser和strong_password为安全凭据。 -
创建一个新数据库并分配所有权:
sql CREATE DATABASE mydatabase OWNER myuser; - 授予权限(如果需要,或者
CREATE DATABASE所有者已处理基本操作):
sql GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser; - 退出
psql:
sql \q
4. 配置 pg_hba.conf 以进行网络访问
pg_hba.conf 文件控制客户端身份验证。默认情况下,PostgreSQL 可能只允许来自 localhost (127.0.0.1) 的连接。
-
位置:此文件通常位于 PostgreSQL 数据目录中(例如,Debian/Ubuntu 上的
/var/lib/postgresql/16/main/pg_hba.conf,RHEL 上的/var/lib/pgsql/16/data/pg_hba.conf,或 Windows 上的C:\Program Files\PostgreSQL\16\data\pg_hba.conf)。 -
编辑文件(以 root/管理员身份):
bash sudo nano /etc/postgresql/16/main/pg_hba.conf
(根据您的操作系统和版本调整路径)。要允许
myuser使用密码身份验证从任何 IP 地址连接,请添加类似以下内容的行:
```TYPE DATABASE USER ADDRESS METHOD
host mydatabase myuser 0.0.0.0/0 md5
``md5表示密码身份验证。0.0.0.0/0表示任何 IP 地址。为获得更高安全性,请指定特定 IP 地址范围(例如192.168.1.0/24`)。 -
重新加载 PostgreSQL:修改
pg_hba.conf后,您必须重新加载 PostgreSQL 服务才能使更改生效。
bash sudo systemctl reload postgresql # Linux # macOS 上的 Homebrew: # brew services restart postgresql # Windows:通过 Services.msc 重启 PostgreSQL 服务
5. 配置 postgresql.conf(网络监听)
默认情况下,PostgreSQL 通常仅监听 localhost。要接受来自其他计算机的连接,您需要修改 postgresql.conf。
-
位置:此文件通常与
pg_hba.conf位于同一目录中。 -
编辑文件:
bash sudo nano /etc/postgresql/16/main/postgresql.conf找到
listen_addresses参数并进行更改:
```listen_addresses = 'localhost' # 监听哪些 IP 地址;
listen_addresses = '*' # 监听所有可用的网络接口
```
或者,如果您只想监听少数几个 IP 地址,则指定特定 IP 地址。 -
重启 PostgreSQL:对
postgresql.conf的更改需要完全重启服务。
bash sudo systemctl restart postgresql # Linux # brew services restart postgresql # macOS # Windows:通过 Services.msc 重启 PostgreSQL 服务
验证您的安装
完成所有配置后,请执行最终验证:
- 检查 PostgreSQL 服务状态(
systemctl status postgresql或brew services list或 Windows Services)。 -
以您的新用户身份连接到您的新数据库:
bash psql -h localhost -U myuser -d mydatabase
系统会提示您输入myuser的密码。如果成功,您将看到mydatabase=>提示符。输入\q退出。如果从不同计算机连接,请将
localhost替换为服务器的 IP 地址。
提示和最佳实践
- 强密码:始终为所有数据库用户使用强而唯一的密码,尤其是
postgres超级用户。 - 专用数据目录:对于生产环境,请考虑将数据目录放在专用卷或 RAID 阵列上,以提高性能和可靠性。
- 定期备份:从第一天起就实施强大的备份策略。PostgreSQL 的
pg_dump和pg_basebackup工具是实现此目的的出色工具。 - 保持更新:及时更新您的 PostgreSQL 安装,以受益于错误修复、安全补丁和新功能。使用系统的包管理器或遵循 EDB 安装程序的更新过程。
- 防火墙配置:如果允许远程连接,请确保您的系统防火墙(例如
ufw、firewalld、Windows Firewall)已配置为允许端口5432(或您选择的端口)上的入站流量。
结论
您现在已在选择的操作系统上成功安装并执行了 PostgreSQL 的基本初始配置。本综合指南已引导您完成了 Linux、macOS 和 Windows 的特定平台步骤,以及用户和数据库创建、配置网络访问等重要的安装后任务。有了正常运行的 PostgreSQL,您现在就可以开始构建健壮的数据驱动型应用程序了。您的下一步可能包括学习更高级的数据库管理、探索 pgAdmin 4(如果在 Windows/macOS 上),或者深入使用您喜欢的编程语言及其 PostgreSQL 驱动程序进行应用程序开发。
拥抱 PostgreSQL 的强大功能——您高级数据管理之旅刚刚开始!