PostgreSQL 安装指南
系统要求
在安装 PostgreSQL 之前,请确保您的系统满足以下要求:
硬件要求
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 1 GHz | 2+ GHz 多核 |
| 内存 | 1 GB | 4+ GB |
| 磁盘空间 | 512 MB | 1+ GB |
| 网络 | 可选 | 远程访问需要 |
支持的操作系统
- Windows 10/11(64 位)
- macOS 10.15(Catalina)或更高版本
- Linux(Ubuntu、Debian、Fedora、CentOS、RHEL 等)
Windows 安装
方法 1:交互式安装程序(推荐)
步骤 1:下载 PostgreSQL
- 访问 PostgreSQL 官方下载页面:https://www.postgresql.org/download/windows/
- 点击"Download the installer"
- 选择最新的 PostgreSQL 版本(例如 PostgreSQL 16)
- 下载 Windows x86-64 安装程序(.exe 文件)
步骤 2:运行安装程序
- 双击下载的 .exe 文件
- 如果用户账户控制提示,点击"是"允许
- PostgreSQL 安装向导将启动
步骤 3:选择安装目录
- 接受默认目录或选择自定义位置
- 默认:
C:\Program Files\PostgreSQL\16 - 点击"下一步"继续
步骤 4:选择组件
选择要安装的组件:
- [x] PostgreSQL Server(必需)
- [x] pgAdmin 4(图形管理工具)
- [x] Stack Builder(附加工具安装程序)
- [x] 命令行工具
步骤 5:数据目录
- 接受默认数据目录
- 默认:
C:\Program Files\PostgreSQL\16\data - 点击"下一步"继续
步骤 6:设置密码
- 为 postgres 超级用户输入强密码
- 记住此密码 - 连接数据库时需要使用
- 点击"下一步"继续
步骤 7:端口配置
- 接受默认端口(5432)
- 如果端口 5432 已被占用,选择其他端口
- 点击"下一步"继续
步骤 8:区域设置
- 选择数据库的默认区域设置
- 默认:"[Default locale]"使用系统区域设置
- 点击"下一步"继续
步骤 9:完成安装
- 查看安装设置
- 点击"下一步"开始安装
- 等待安装完成(可能需要几分钟)
- 如果不需要,取消选中"退出时启动 Stack Builder"
- 点击"完成"关闭安装程序
方法 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 postgresmacOS 安装
方法 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 安装程序
- 从 https://www.postgresql.org/download/macos/ 下载安装程序
- 打开下载的 .dmg 文件
- 运行 PostgreSQL 安装程序
- 按照屏幕上的说明操作
- 提示时输入管理员密码
- 设置 postgres 用户密码
- 启动 pgAdmin 验证安装
方法 3:Postgres.app
- 从 https://postgresapp.com/ 下载 Postgres.app
- 将 Postgres.app 移动到应用程序文件夹
- 双击启动
- 点击"Initialize"创建新服务器
- 添加到 PATH:
bash
echo 'export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc验证 macOS 安装
bash
# 检查版本
psql --version
# 连接到 PostgreSQL
psql postgresLinux 安装
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 psqlCentOS/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-16Fedora
bash
# 安装 PostgreSQL
sudo dnf install -y postgresql-server postgresql-contrib
# 初始化数据库
sudo postgresql-setup --initdb
# 启用并启动服务
sudo systemctl enable --now postgresqlDocker 安装
安装 Docker
Windows/macOS
- 从 https://www.docker.com/ 下载 Docker Desktop
- 安装应用程序
- 启动 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-containerDocker 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 psqlsql
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认证失败
- 检查 pg_hba.conf 中的正确认证方法
- 验证密码是否正确
- 确保用户存在并具有适当的权限
- 配置更改后重启 PostgreSQL
卸载 PostgreSQL
Windows
- 打开控制面板 > 程序 > 程序和功能
- 在列表中找到 PostgreSQL
- 右键单击并选择"卸载"
- 按照卸载程序说明操作
- 如果需要,手动删除剩余文件:
C:\Program Files\PostgreSQLC:\Users\YourUser\AppData\Roaming\postgresql
macOS
bash
# 使用 Homebrew
brew uninstall postgresql
brew cleanup
# 删除数据目录
rm -rf /usr/local/var/postgres
# 删除历史记录
rm -rf ~/.psql_historyLinux
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/postgresqlDocker
bash
# 停止并删除容器
docker stop postgres-container
docker rm postgres-container
# 删除镜像
docker rmi postgres:16
# 删除卷
docker volume rm postgres_data安装后步骤
成功安装后:
- 为 postgres 用户设置强密码
- 在 pg_hba.conf 中配置认证
- 如果需要,启用远程访问(postgresql.conf)
- 为应用程序创建数据库和用户
- 安装 pgAdmin 进行图形化管理
- 使用 pg_dump 或 pg_basebackup 设置备份
- 配置日志记录以进行监控
- 根据硬件优化设置
下一步
- 学习基本的 PostgreSQL 命令和 SQL 语法
- 探索 pgAdmin 进行数据库管理
- 设置定期备份
- 配置性能调优
- 实施安全最佳实践
总结
本指南涵盖了 PostgreSQL 在以下平台的安装:
- Windows(交互式安装程序、Chocolatey、Winget)
- macOS(Homebrew、官方安装程序、Postgres.app)
- Linux(Ubuntu、Debian、CentOS、RHEL、Fedora)
- Docker(容器、Docker Compose)
记住:
- 保持 PostgreSQL 更新
- 使用强密码
- 配置适当的认证
- 设置定期备份
- 监控性能和日志
PostgreSQL 现在已准备好使用!