商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > Linux怎么安装PostgreSQL 15 Linux数据库安装与初始化详解

Linux怎么安装PostgreSQL 15 Linux数据库安装与初始化详解

  发布于2026-05-20 阅读(0)

扫一扫,手机访问

在Linux上部署PostgreSQL 15,最稳妥的路径是什么?答案很明确:直接使用官方仓库的YUM包安装。除非你对编译选项有特殊需求,否则源码编译带来的灵活性,往往抵不过它在依赖、路径和权限配置上给你挖的坑。

Linux怎么安装PostgreSQL 15 Linux数据库安装与初始化详解

用 YUM 安装 PostgreSQL 15(CentOS/RHEL/RockyLinux)

选择官方仓库,图的就是一个省心和版本纯净。安装本身不难,真正的关键点在于:装完之后,你得确保能立刻执行初始化。很多朋友卡住,要么是没处理好系统自带模块的冲突,要么就是漏掉了手动初始化的步骤。

  • 添加官方源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
  • 安装服务端:注意包名是postgresql15-server,别装成旧的postgresql-serversudo dnf install -y postgresql15-server
  • 手动初始化:这是核心步骤,不执行就不会生成数据目录:sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
  • 启动与验证sudo systemctl start postgresql-15,然后用sudo systemctl status postgresql-15确认服务状态。

源码编译安装 PostgreSQL 15 的关键陷阱

编译成功,不等于就能用。最常见的“拦路虎”是初始化时提示could not identify a default data directorypermission denied。问题根源,几乎都出在用户、目录路径和环境变量没对齐。

  • 依赖要装全readline-develzlib-developenssl-devellibxml2-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?检查这三处

服务起来了,但用psql连接时报错“command not found”或认证失败?别急,问题通常不在数据库本身,而在环境和配置细节。

  • 环境变量是否生效:确认PostgreSQL的bin目录(如/usr/pgsql-15/bin)已添加到系统的PATH环境变量中(例如在/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';设置密码。

说到底,安装PostgreSQL真正的挑战,往往不是安装命令本身,而是安装后那一连串的“小状况”:initdb没执行、pg_ctl找不到、psql被拒绝。这些大多不是软件的bug,而是路径、用户、权限和配置项之间没有严丝合缝地对接好。经验之谈是:每一步操作后,花上十秒钟验证一下输出是否符合预期,这比事后重装三遍都要高效得多。

本文转载于:https://www.php.cn/faq/2462924.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注