最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux怎么安装PostgreSQL 15 详解Linux数据库安装与初始化
时间:2026-06-12 08:00:47 编辑:袖梨 来源:一聚教程网
最稳妥方式是用YUM安装PostgreSQL 15官方仓库包:先添加pgdg源,禁用系统冲突模块,再安装postgresql15-server,手动执行initdb初始化,最后启动服务并验证状态。
直接用系统包管理器装 postgresql15-server 是最稳妥的选择,除非你明确需要定制编译选项(比如启用 llvmjit)或部署非仓库版本。源码编译看似灵活,但容易卡在依赖、路径、权限、systemd 配置这四关。
用 YUM 安装 PostgreSQL 15(CentOS/RHEL/RockyLinux)
官方仓库比系统自带的更及时,也避免了版本混杂。关键不是“能不能装”,而是“装完能不能立刻 initdb”。常见失败点是没禁用系统自带模块或漏掉初始化步骤。
- 先装官方 YUM 源:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %rhel)-x86_64/pgdg-redhat-repo-latest.noarch.rpm - 禁用冲突模块(尤其 RHEL 9+):
sudo dnf module reset postgresql && sudo dnf module enable postgresql:15 - 安装服务端:
sudo dnf install -y postgresql15-server(注意不是postgresql-server) - 初始化集群:
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb—— 这步必须手动执行,不运行就不会生成/var/lib/pgsql/15/data - 启动服务:
sudo systemctl start postgresql-15,检查状态:sudo systemctl status postgresql-15
源码编译安装 PostgreSQL 15 的关键陷阱
不是所有“编译成功”都等于“能用”。最常踩的坑是 initdb 报错 could not identify a default data directory 或 permission denied,根源几乎都在用户、目录、PATH 三者没对齐。
- 编译前确保装全依赖:
readline-devel、zlib-devel、openssl-devel、libxml2-devel缺一不可;perl-ExtUtils-Embed影响 PL/Perl 支持 -
./configure --prefix=/usr/local/pgsql15后,必须用对应路径下的initdb,比如:/usr/local/pgsql15/bin/initdb -D /var/lib/pgsql/15/data - 数据目录必须由
postgres用户拥有:sudo chown -R postgres:postgres /var/lib/pgsql/15/data - systemd 服务文件里
ExecStart必须显式指定-D ${PGDATA},不能只写pg_ctl start,否则它会去默认路径找
初始化后连不上 psql?检查这三处
装完启动了,但切到 postgres 用户执行 psql 提示 command not found 或 peer 认证失败,问题不在数据库本身,而在环境和配置。
- PATH 没生效:确认
/usr/pgsql-15/bin(或你自定义的bin路径)已加入/etc/profile并执行了source /etc/profile - 没切换对用户:
sudo -u postgres psql才是正确姿势,直接su postgres再psql可能因 shell 环境变量缺失而失败 -
pg_hba.conf默认只允许本地peer认证,首次登录不要加-h 127.0.0.1,否则会走md5流程而你还没设密码;先用sudo -u postgres psql -U postgres进去再ALTER USER postgres PASSWORD 'xxx';
真正麻烦的从来不是“怎么装”,而是装完发现 initdb 没跑、pg_ctl 找不到、psql 报 peer 拒绝——这些都不是 PostgreSQL 的 bug,是路径、用户、权限、配置项之间没咬合上。每一步执行后,花 10 秒验证输出是否符合预期,比重装三次都快。