postgresql 完整教程:万字详解 PostgreSQL 的详细安装方式(Linux、Windows、macOS、Docker 全平台覆盖)

postgresql 完整教程:万字详解 PostgreSQL 的详细安装方式(Linux、Windows、macOS、Docker 全平台覆盖)

本文将全面、系统、深入地讲解 在 Linux(/)、、macOS 以及 容器 四大主流环境下的详细安装步骤postgresql 完整教程:万字详解 PostgreSQL 的详细安装方式(Linux、Windows、macOS、Docker 全平台覆盖),涵盖官方仓库、包管理器、图形化安装程序、容器化部署等多种方式,并附带初始化配置、服务管理、安全加固等关键实践。

一、安装前准备:通用原则与注意事项

在具体操作前,需明确以下通用原则:

1.1 版本选择1.2 权限要求1.3 端口与防火墙1.4 存储路径建议预留足够磁盘空间(至少 1GB 起)。二、Linux 系统安装

Linux 发行版众多,本文以 ( 系) 和 /Rocky Linux(RHEL 系) 为代表。

2.1 / 安装(推荐使用官方 APT 仓库)

优势:自动更新、版本丰富、集成 服务。

步骤 1:添加官方 APT 仓库

# 导入 GPG 密钥
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# 添加仓库(以 Ubuntu 22.04 + PostgreSQL 16 为例)
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
# 更新包索引
sudo apt update

注意:$( -cs) 自动获取发行版代号(如 jammy、focal)。若为非标准系统,可手动替换。

步骤 2:安装

# 安装客户端、服务器及 contrib 扩展(含 pg_stat_statements 等)
sudo apt install postgresql-16 postgresql-client-16 postgresql-contrib-16

步骤 3:验证安装

# 检查服务状态
sudo systemctl status postgresql@16-main
# 切换到 postgres 用户并进入 psql
sudo -u postgres psql -c "SELECT version();"

步骤 4:初始化与配置(通常自动完成)

安全提示:默认仅允许本地 peer 认证,无需密码即可登录(通过 sudo -u )。

2.2 / Rocky Linux / 安装(使用官方 YUM 仓库)

适用于 RHEL 7/8/9 及其衍生版。

步骤 1:添加官方 YUM 仓库

# 下载并安装仓库 RPM(以 Rocky Linux 9 + PG16 为例)
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 禁用内置 postgresql 模块(避免冲突)
sudo dnf -qy module disable postgresql

步骤 2:安装

sudo dnf install -y postgresql16-server postgresql16-contrib

步骤 3:初始化数据库集群

# 首次安装需手动初始化
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
# 启动并设置开机自启
sudo systemctl enable --now postgresql-16

步骤 4:验证

sudo -u postgres psql -c "SELECT current_database();"

提示:数据目录为 /var/lib/pgsql/16/data。

2.3 从源码编译安装(高级用户)

适用于需要定制编译选项(如启用 ICU、LDAP、SSL)或最新开发版。

# 安装依赖
sudo apt install build-essential zlib1g-dev libreadline-dev flex bison libssl-dev
# 下载源码(以 16.1 为例)
wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.gz
tar -xzf postgresql-16.1.tar.gz
cd postgresql-16.1
# 配置编译选项
./configure --prefix=/usr/local/pgsql --with-openssl --enable-thread-safety
# 编译与安装
make -j$(nproc)
sudo make install
# 创建用户与数据目录
sudo useradd -r -s /bin/false postgres
sudo mkdir /usr/local/pgsql/data
sudo chown postgres:postgres /usr/local/pgsql/data
# 初始化
sudo -u postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
# 启动
sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start

注意:源码安装需手动管理服务、PATH 环境变量等。

三、 系统安装

提供图形化安装程序,适合桌面开发。

3.1 下载安装程序3.2 图形化安装步骤运行安装程序(如 -16.1-1–x64.exe)选择安装目录(默认 C: Files\16)设置数据目录(默认 C: Files\16data)设置超级用户密码(务必牢记!此为 用户密码)选择端口(默认 5432postgresql,若冲突可修改)选择区域()(建议 UTF8,避免中文乱码)安装组件: 开始安装 → 等待完成3.3 验证安装3.4 服务管理

安全建议:生产环境中应限制远程访问,修改默认密码策略。

四、macOS 系统安装

macOS 开发者常用 或 .app。

4.1 使用 (推荐)

优势:命令行友好、易于更新、与开发工具链集成。

步骤 1:安装 (若未安装)

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

步骤 2:安装

# 安装最新版
brew install postgresql@16
# 启动服务(后台常驻)
brew services start postgresql@16

提示:Apple (M1/M2)芯片路径为 /opt/postgresql 完整教程:万字详解 PostgreSQL 的详细安装方式(Linux、Windows、macOS、Docker 全平台覆盖),Intel 为 /usr/local。

步骤 3:验证

# 默认无需密码(peer 认证)
psql postgres
# 或创建数据库
createdb mydb
psql mydb

步骤 4:常用命令

brew services list                 # 查看服务状态
brew info postgresql@16           # 查看配置信息
psql -l                           # 列出数据库

数据目录:$(brew –)/var/@16

4.2 使用 .app(图形化首选)

适合不喜欢命令行的 macOS 用户。

访问 下载并拖拽到 文件夹首次启动点击 “” 创建服务器自动配置 PATH,终端可直接使用 psql菜单栏图标可快速启停、查看日志、打开 psql

优点:零配置、一键启停、多版本共存、集成 。

五、 容器化安装

容器化部署适合开发、测试、CI/CD 及微服务架构。

5.1 拉取官方镜像

docker pull postgres:16

5.2 快速启动(临时容器)

docker run --name mypg -e POSTGRES_PASSWORD=mypassword -p 5432:5432 -d postgres:16

5.3 持久化数据(生产推荐)

# 创建卷
docker volume create pgdata
# 启动容器并挂载卷
docker run --name mypg 
-e POSTGRES_PASSWORD=mypassword 
-e POSTGRES_DB=myapp 
-v pgdata:/var/lib/postgresql/data 
-p 5432:5432 
-d postgres:16

优势:数据不随容器销毁而丢失。

5.4 自定义配置

可通过挂载配置文件覆盖默认设置:

# 创建自定义 postgresql.conf
echo "shared_preload_libraries = 'pg_stat_statements'" > ./my-postgres.conf
# 启动时挂载
docker run ... -v $(pwd)/my-postgres.conf:/etc/postgresql/postgresql.conf ...

或使用 脚本初始化:

# 准备 init.sql
echo "CREATE USER appuser WITH PASSWORD 'apppass';" > init.sql
# 挂载到 docker-entrypoint-initdb.d
docker run ... -v $(pwd)/init.sql:/docker-entrypoint-initdb.d/init.sql ...

官方镜像会在首次启动时执行 /–.d/ 下的 .sql 或 .sh 脚本。

5.5 连接容器内数据库

# 进入容器执行 psql
docker exec -it mypg psql -U postgres
# 或从宿主机连接
psql -h localhost -U postgres -d postgres

六、安装后关键配置与安全加固

无论何种方式安装,以下配置至关重要。

6.1 修改监听地址(允许远程访问)

编辑 .conf:

listen_addresses = '*'   # 或指定 IP,如 'localhost,192.168.1.100'
port = 5432

仅在必要时开启postgresql,配合防火墙使用。

6.2 配置客户端认证(.conf)

典型配置(位于数据目录下):

# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             postgres                                peer
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5
host    mydb            appuser         192.168.1.0/24          md5

6.3 创建应用用户与数据库

-- 登录 psql
sudo -u postgres psql
-- 创建用户
CREATE USER myapp WITH PASSWORD 'strongpassword';
-- 创建数据库并授权
CREATE DATABASE myapp OWNER myapp;
-- 退出
q

6.4 设置环境变量(可选)

为方便命令行使用,可将 psql 加入 PATH:

七、常见问题排查7.1 “psql: not found”7.2 “FATAL: ”7.3 端口被占用7.4 中文乱码

最后总结:

平台推荐方式适用场景

官方 APT 仓库

生产服务器、云主机

官方 YUM 仓库

企业级 Linux 服务器

EDB 图形安装程序

桌面开发、学习

macOS

或 .app

本地开发、快速原型

任意平台

容器

微服务、CI/CD、隔离测试

核心原则:

的安装只是第一步,后续还需关注备份策略(/)、性能调优(, )、高可用(流复制、)等进阶主题。

提醒:安装完成后postgresql,立即运行 和 (); 验证环境,并尝试创建第一个数据库。

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » postgresql 完整教程:万字详解 PostgreSQL 的详细安装方式(Linux、Windows、macOS、Docker 全平台覆盖)

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们