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

用 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-server:sudo 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 directory或permission denied。问题根源,几乎都出在用户、目录路径和环境变量没对齐。
- 依赖要装全:
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?检查这三处
服务起来了,但用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,而是路径、用户、权限和配置项之间没有严丝合缝地对接好。经验之谈是:每一步操作后,花上十秒钟验证一下输出是否符合预期,这比事后重装三遍都要高效得多。
相关攻略
Linux系统界面显示英文通常因未安装中文语言包。Ubuntu Debian系统可通过APT安装语言包并设置locale实现汉化;CentOS等RedHat系列需使用软件组安装中文支持;ArchLinux需手动生成locale并安装中文字体;KaliLinux则需配置locales并安装字体包。完成设置后,重启或重新登录即可生效,可通过locale命令或检查
Linux系统中,stat命令显示的访问时间常因默认挂载选项noatime而停止更新,无法反映真实读取记录。为监控文件读取行为,应使用inotify、auditd或eBPF等工具。stat-c命令在非GNU环境可能不兼容,建议依赖更可靠的修改时间或状态变更时间进行跨平台操作。
遇到“Toomanyopenfiles”报错,不应盲目调大file-max或ulimit。需先确认系统是否真的资源告急,以及哪个进程在消耗句柄。排查时需区分系统级限制(查看 proc sys fs file-nr)和进程级限制(查看进程的SoftLimit)。对于systemd服务,修改limits conf无效,必须通过override配置片段调整。容器环
在Linux中查看进程堆内存,可直接分析` proc [pid] maps`中标记为`[heap]`的段,或计算`VmData`字段。使用gdb追踪内存分配需程序带调试信息,可在`__libc_malloc`设断点。定位堆外泄漏推荐`pmap-x`,重点关注`ANON`匿名映射列的增长。组合排查时需注意内存分配器替换、内存布局变化及指针所属映射段,以区分堆内
SQLite是嵌入式常用数据库,Linux多预装命令行工具,C开发需另装开发包。使用时要区分点开头的元命令和以分号结尾的SQL语句,避免操作无响应。注意验证安装、正确使用分号及区分命令类型,可防止常见操作错误。
热门专题
热门推荐
近日,中国汽车流通协会联合精真估发布了《2026年4月纯电动车型一年车龄保值率排行榜》。这份数据对于正在选购新能源车的消费者具有重要参考价值,能帮助大家更清晰地了解当前热门电动车的残值表现。 该榜单统计的是车龄满一年的纯电动车型。位居榜首的是问界M9,其一年保值率高达80 4%。这一夺冠成绩含金量十
科技行业近期迎来一场备受瞩目的创新盛宴。以智能清洁机器人闻名的追觅科技(Dreame),在旧金山隆重举办了“Dreame Next 2026”未来愿景发布会。活动不仅前瞻性地展示了涵盖智能手机、智能穿戴乃至概念电动车的全系列产品,更邀请到苹果联合创始人史蒂夫·沃兹尼亚克亲临助阵。这场为期四天的盛会,
SpaceX最快下周披露招股书,6月初启动全球路演,估值或达1 75万亿美元,募资规模有望创纪录。公司以垂直整合与成本控制为核心优势,布局商业航天、AI基础设施与卫星互联网,其“太空数据中心”构想融合太空太阳能与AI算力,开辟新赛道。此次IPO或引发科技板块资金结构性变动,标志资本正加速拥抱太空与AI融。
NVIDIA在SIGGRAPH上宣布扩展其微服务库,以加速人形机器人开发。其核心是将生成式AI深度集成至OpenUSD语言体系,推出相关模型与NIM微服务,从而提升数字孪生与机器人工作流效率。公司还开放了机器人技术栈,并联合合作伙伴推动OpenUSD的工业应用,为开发者提供从仿真到部署的端到端平台支持。
OKX作为全球领先的数字资产交易平台,其风险主要来源于市场波动、技术安全与合规环境。平台通过多重安全机制、资产储备证明和严格的合规流程来管理风险。用户需理解加密货币的高波动性本质,并采取自主保管资产、启用安全功能等策略,以在参与Web3生态时更好地保护自身权益。





