Skip to content

PostgreSQL 安装指南

系统要求

在安装 PostgreSQL 之前,请确保您的系统满足以下要求:

硬件要求

组件最低要求推荐配置
CPU1 GHz2+ GHz 多核
内存1 GB4+ GB
磁盘空间512 MB1+ GB
网络可选远程访问需要

支持的操作系统

  • Windows 10/11(64 位)
  • macOS 10.15(Catalina)或更高版本
  • Linux(Ubuntu、Debian、Fedora、CentOS、RHEL 等)

Windows 安装

方法 1:交互式安装程序(推荐)

步骤 1:下载 PostgreSQL

  1. 访问 PostgreSQL 官方下载页面:https://www.postgresql.org/download/windows/
  2. 点击"Download the installer"
  3. 选择最新的 PostgreSQL 版本(例如 PostgreSQL 16)
  4. 下载 Windows x86-64 安装程序(.exe 文件)

步骤 2:运行安装程序

  1. 双击下载的 .exe 文件
  2. 如果用户账户控制提示,点击"是"允许
  3. PostgreSQL 安装向导将启动

步骤 3:选择安装目录

  1. 接受默认目录或选择自定义位置
  2. 默认:C:\Program Files\PostgreSQL\16
  3. 点击"下一步"继续

步骤 4:选择组件

选择要安装的组件:

  • [x] PostgreSQL Server(必需)
  • [x] pgAdmin 4(图形管理工具)
  • [x] Stack Builder(附加工具安装程序)
  • [x] 命令行工具

步骤 5:数据目录

  1. 接受默认数据目录
  2. 默认:C:\Program Files\PostgreSQL\16\data
  3. 点击"下一步"继续

步骤 6:设置密码

  1. 为 postgres 超级用户输入强密码
  2. 记住此密码 - 连接数据库时需要使用
  3. 点击"下一步"继续

步骤 7:端口配置

  1. 接受默认端口(5432)
  2. 如果端口 5432 已被占用,选择其他端口
  3. 点击"下一步"继续

步骤 8:区域设置

  1. 选择数据库的默认区域设置
  2. 默认:"[Default locale]"使用系统区域设置
  3. 点击"下一步"继续

步骤 9:完成安装

  1. 查看安装设置
  2. 点击"下一步"开始安装
  3. 等待安装完成(可能需要几分钟)
  4. 如果不需要,取消选中"退出时启动 Stack Builder"
  5. 点击"完成"关闭安装程序

方法 2:Chocolatey

如果已安装 Chocolatey 包管理器:

powershell
# 安装 PostgreSQL
choco install postgresql16

# 启动 PostgreSQL 服务
choco start postgresql16

方法 3:Winget

使用 Windows 包管理器:

powershell
# 安装 PostgreSQL
winget install PostgreSQL.PostgreSQL

验证 Windows 安装

powershell
# 检查 PostgreSQL 版本
psql --version

# 连接到 PostgreSQL
psql -U postgres

macOS 安装

方法 1:Homebrew(推荐)

安装 Homebrew(如果尚未安装)

bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装 PostgreSQL

bash
# 更新 Homebrew
brew update

# 安装 PostgreSQL 16
brew install postgresql@16

# 将 PostgreSQL 添加到 PATH
echo 'export PATH="/usr/local/opt/postgresql@16/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

启动 PostgreSQL

bash
# 将 PostgreSQL 作为后台服务启动
brew services start postgresql@16

# 或手动启动
pg_ctl -D /usr/local/var/postgresql@16 start

初始化数据库

bash
# 创建数据库集群(如果需要)
initdb /usr/local/var/postgresql@16

# 创建第一个数据库
createdb mydatabase

方法 2:PostgreSQL macOS 安装程序

  1. https://www.postgresql.org/download/macos/ 下载安装程序
  2. 打开下载的 .dmg 文件
  3. 运行 PostgreSQL 安装程序
  4. 按照屏幕上的说明操作
  5. 提示时输入管理员密码
  6. 设置 postgres 用户密码
  7. 启动 pgAdmin 验证安装

方法 3:Postgres.app

  1. https://postgresapp.com/ 下载 Postgres.app
  2. 将 Postgres.app 移动到应用程序文件夹
  3. 双击启动
  4. 点击"Initialize"创建新服务器
  5. 添加到 PATH:
bash
echo 'export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

验证 macOS 安装

bash
# 检查版本
psql --version

# 连接到 PostgreSQL
psql postgres

Linux 安装

Ubuntu/Debian

更新系统

bash
sudo apt update
sudo apt upgrade

安装 PostgreSQL

bash
# 安装 PostgreSQL 和附加有用的包
sudo apt install postgresql postgresql-contrib

# 安装附加模块(可选)
sudo apt install postgresql-16-postgis-3 postgresql-16-pgrouting

管理 PostgreSQL 服务

bash
# 启动 PostgreSQL 服务
sudo systemctl start postgresql

# 启用 PostgreSQL 开机自启
sudo systemctl enable postgresql

# 检查状态
sudo systemctl status postgresql

# 重启 PostgreSQL
sudo systemctl restart postgresql

访问 PostgreSQL

bash
# 切换到 postgres 用户
sudo -i -u postgres

# 或使用 sudo 以 postgres 用户身份运行命令
sudo -u postgres psql

CentOS/RHEL

添加 PostgreSQL 仓库

bash
# 对于 CentOS/RHEL 8+
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 对于 CentOS/RHEL 7
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

安装 PostgreSQL

bash
# 对于 CentOS/RHEL 8+
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql16-server postgresql16-contrib

# 对于 CentOS/RHEL 7
sudo yum install -y postgresql16-server postgresql16-contrib

初始化数据库

bash
# 对于 CentOS/RHEL 8+
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb

# 对于 CentOS/RHEL 7
sudo /usr/pgsql-16/bin/postgresql16-setup initdb

启动 PostgreSQL

bash
# 启用并启动 PostgreSQL
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16

# 检查状态
sudo systemctl status postgresql-16

Fedora

bash
# 安装 PostgreSQL
sudo dnf install -y postgresql-server postgresql-contrib

# 初始化数据库
sudo postgresql-setup --initdb

# 启用并启动服务
sudo systemctl enable --now postgresql

Docker 安装

安装 Docker

Windows/macOS

  1. https://www.docker.com/ 下载 Docker Desktop
  2. 安装应用程序
  3. 启动 Docker Desktop

Linux

bash
# Ubuntu/Debian
sudo apt install docker.io docker-compose

# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker

# 将用户添加到 docker 组
sudo usermod -aG docker $USER

使用 Docker 运行 PostgreSQL

bash
# 拉取 PostgreSQL 镜像
docker pull postgres:16

# 创建并运行容器
docker run --name postgres-container \
  -e POSTGRES_PASSWORD=your_secure_password \
  -e POSTGRES_USER=myuser \
  -e POSTGRES_DB=mydb \
  -p 5432:5432 \
  -v postgres_data:/var/lib/postgresql/data \
  -d postgres:16

# 查看运行中的容器
docker ps

# 连接到 PostgreSQL
docker exec -it postgres-container psql -U myuser -d mydb

# 停止容器
docker stop postgres-container

# 启动容器
docker start postgres-container

# 删除容器
docker rm postgres-container

Docker Compose

创建 docker-compose.yml 文件:

yaml
version: '3.8'

services:
  postgres:
    image: postgres:16
    container_name: postgres_db
    environment:
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mysecretpassword
      POSTGRES_DB: mydb
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: always

volumes:
  postgres_data:

运行:

bash
# 启动服务
docker-compose up -d

# 停止服务
docker-compose down

# 查看日志
docker-compose logs -f

验证安装

检查 PostgreSQL 版本

bash
# 使用命令行工具
psql --version

# 使用 SQL 查询
psql -U postgres -c "SELECT version();"

测试连接

bash
# 连接到 PostgreSQL
psql -U postgres

# 或使用 docker
docker exec -it postgres-container psql -U postgres

基本命令

sql
-- 列出所有数据库
\l

-- 列出所有用户/角色
\du

-- 列出所有表
\dt

-- 显示当前用户
SELECT current_user;

-- 显示当前数据库
SELECT current_database();

-- 显示 PostgreSQL 版本
SELECT version();

-- 退出 psql
\q

初始配置

设置密码认证

bash
# 连接到 PostgreSQL
sudo -u postgres psql

-- 更改 postgres 用户的密码
ALTER USER postgres WITH PASSWORD 'your_new_password';

-- 退出
\q

或使用 psql 密码命令:

sql
-- 在 psql 中更改密码
\password postgres

配置远程访问

编辑 pg_hba.conf

bash
# 查找 pg_hba.conf 位置
sudo -u postgres psql -c "SHOW hba_file;"

# 编辑文件
sudo nano /etc/postgresql/16/main/pg_hba.conf

# 添加远程访问规则(添加此行)
# host    all             all             0.0.0.0/0            md5

编辑 postgresql.conf

bash
# 查找 postgresql.conf 位置
sudo -u postgres psql -c "SHOW config_file;"

# 编辑文件
sudo nano /etc/postgresql/16/main/postgresql.conf

# 更改 listen_addresses(取消注释并修改)
# listen_addresses = '*'

重启 PostgreSQL

bash
# 在 systemd 系统上
sudo systemctl restart postgresql

# 或重新加载配置
sudo systemctl reload postgresql

创建新数据库

bash
# 使用 createdb 命令
createdb mydatabase

# 或使用 SQL
sudo -u postgres psql
sql
CREATE DATABASE mydatabase;

创建新用户

sql
-- 创建带密码的用户
CREATE USER myuser WITH ENCRYPTED PASSWORD 'mypassword';

-- 创建具有权限的用户
CREATE USER myuser WITH ENCRYPTED PASSWORD 'mypassword' CREATEDB CREATEROLE;

-- 授予权限
GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;

-- 授予模式权限
GRANT ALL ON SCHEMA public TO myuser;

常见安装问题

端口已被占用

bash
# 检查什么在使用端口 5432
sudo lsof -i :5432

# 或在 postgresql.conf 中更改 PostgreSQL 端口
# port = 5433

权限问题

bash
# 修复所有权
sudo chown -R postgres:postgres /var/lib/postgresql

# 修复权限
sudo chmod -R 700 /var/lib/postgresql

磁盘空间问题

bash
# 检查磁盘空间
df -h

# 清理旧日志
sudo find /var/lib/postgresql -name "*.log" -mtime +30 -delete

连接问题

bash
# 检查 PostgreSQL 状态
sudo systemctl status postgresql

# 检查监听端口
sudo netstat -tlnp | grep postgres

# 测试本地连接
psql -h localhost -U postgres

# 检查防火墙
sudo ufw allow 5432/tcp

认证失败

  1. 检查 pg_hba.conf 中的正确认证方法
  2. 验证密码是否正确
  3. 确保用户存在并具有适当的权限
  4. 配置更改后重启 PostgreSQL

卸载 PostgreSQL

Windows

  1. 打开控制面板 > 程序 > 程序和功能
  2. 在列表中找到 PostgreSQL
  3. 右键单击并选择"卸载"
  4. 按照卸载程序说明操作
  5. 如果需要,手动删除剩余文件:
    • C:\Program Files\PostgreSQL
    • C:\Users\YourUser\AppData\Roaming\postgresql

macOS

bash
# 使用 Homebrew
brew uninstall postgresql
brew cleanup

# 删除数据目录
rm -rf /usr/local/var/postgres

# 删除历史记录
rm -rf ~/.psql_history

Linux

bash
# Ubuntu/Debian
sudo apt remove --purge postgresql postgresql-contrib
sudo rm -rf /var/lib/postgresql
sudo rm -rf /etc/postgresql

# CentOS/RHEL
sudo yum remove postgresql16-server postgresql16-contrib
sudo rm -rf /var/lib/pgsql
sudo rm -rf /etc/postgresql

Docker

bash
# 停止并删除容器
docker stop postgres-container
docker rm postgres-container

# 删除镜像
docker rmi postgres:16

# 删除卷
docker volume rm postgres_data

安装后步骤

成功安装后:

  1. 为 postgres 用户设置强密码
  2. 在 pg_hba.conf 中配置认证
  3. 如果需要,启用远程访问(postgresql.conf)
  4. 为应用程序创建数据库和用户
  5. 安装 pgAdmin 进行图形化管理
  6. 使用 pg_dump 或 pg_basebackup 设置备份
  7. 配置日志记录以进行监控
  8. 根据硬件优化设置

下一步

  • 学习基本的 PostgreSQL 命令和 SQL 语法
  • 探索 pgAdmin 进行数据库管理
  • 设置定期备份
  • 配置性能调优
  • 实施安全最佳实践

总结

本指南涵盖了 PostgreSQL 在以下平台的安装:

  • Windows(交互式安装程序、Chocolatey、Winget)
  • macOS(Homebrew、官方安装程序、Postgres.app)
  • Linux(Ubuntu、Debian、CentOS、RHEL、Fedora)
  • Docker(容器、Docker Compose)

记住:

  • 保持 PostgreSQL 更新
  • 使用强密码
  • 配置适当的认证
  • 设置定期备份
  • 监控性能和日志

PostgreSQL 现在已准备好使用!