CentOS7 离线安装 Postgresql 指南

一、背景

服务器通常都是离线内网环境,想要通过联网方式一键下载安装 Postgresql 不太现实,本文将介绍如何在 CentOS7 离线安装 Postgresql,以及遇到困难如何解决。

二、安装包下载

先在本地下载好 rpm 包,再通过 ftp 上传到服务器。

下载地址:Index of /pub/repos/yum/15/redhat/rhel-7-x86_64/

主要需要这三个包:

三、离线安装

安装指令:

bash 复制代码
sudo rpm -ivh postgresql15-*.rpm

报错,是因为缺少依赖,

缺的是这两个依赖:

解决:到阿里云镜像仓库搜索 lz4-1.8.3-1.el7.x86_64.rpmlibicu-50.2-4.el7_7.x86_64.rpm,下载 rpm,然后安装,

bash 复制代码
sudo rpm -ivh lz4-1.8.3-1.el7.x86_64.rpm
sudo rpm -ivh libicu-50.2-4.el7_7.x86_64.rpm

缺少依赖 libzstd,

libzstd https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/l/

下载 rpm ,安装,

bash 复制代码
 sudo rpm -ivh libzstd-1.5.5-1.el7.x86_64.rpm

接着前面的依赖安装,然后最终安装数据库,成功,

四、初始化数据库

bash 复制代码
cd /usr/pgsql-15/bin
sudo ./postgresql-15-setup initdb

查看数据库初始化日志,日志结尾处有完整的数据库启动命令,

bash 复制代码
sudo cat /var/lib/pgsql/15/initdb.log

数据库初始化完成后,有2个目录比较重要:

/usr/pgsql-15/,该目录存放数据库核心命令,例如pg_ctl(数据库启动/停止)、psql(SQL命令行客户端),以及所有数据库共享的配置文件(在同一机器上可以同时启动多个数据库服务进程),例如postgresql.conf,数据库监听的端口号和绑定IP地址就是在文件中配置的。

/var/lib/pgsql/15/data,数据库初始化后,默认的数据存储目录,该目录下也有postgresql.conf,但是这些配置只是针对当前数据库,该目录下另外一个重要的文件是pg_hba.conf,该文件用于配置数据库访问权限,添加远程访问的IP网段。

五、数据库配置

bash 复制代码
# 主要修改绑定ip和日志目录
sudo vim /var/lib/pgsql/15/data/postgresql.conf
listen_addresses = 'localhost' 
log_directory = '/var/lib/pgsql/15/logs/'
# 注意,生产环境 localhost 要改为真正的 ip 地址

# 修改ip权限,允许远程链接
sudo vim /var/lib/pgsql/15/data/pg_hba.conf
# 找到IPv4 local connections
# 然后添加自己需要的IP网段
host    all             all             10.XX.XX.XX/24             scram-sha-256

启动数据库,

bash 复制代码
sudo systemctl start postgresql-15
sudo systemctl status postgresql-15

修改 postgres 账号密码,

bash 复制代码
sudo systemctl stop postgresql-15
sudo vim /var/lib/pgsql/15/data/pg_hba.conf
认证方式修改为 trust
sudo systemctl start postgresql-15

cd /usr/pgsql-15/bin/
psql -U postgres -h 127.0.0.1
alter user postgres with password 'mypassword';

sudo systemctl stop postgresql-15
sudo vim /var/lib/pgsql/15/data/pg_hba.conf
认证方式修改为 scram-sha-256
sudo systemctl start postgresql-15

六、修改数据存储位置

bash 复制代码
sudo systemctl stop postgresql-15

sudo mkdir /Data/pgdata
sudo chown -R postgres:postgres /Data/pgdata
sudo chmod -R 700 /Data/pgdata

sudo mkdir /Data/pglogs
sudo chown -R postgres:postgres /Data/pglogs
sudo chmod -R 700 /Data/pglogs

# sudo vim /var/lib/pgsql/15/data/postgresql.conf
# data_directory = '/Data/pgdata'

cd /usr/pgsql-15/bin
./initdb -D /Data/pgdata

sudo vim /usr/lib/systemd/system/postgresql-15.service
# Environment=PGDATA=/Data/pgdata/

sudo systemctl daemon-reload

sudo systemctl start postgresql-15
sudo systemctl status postgresql-15

createuser -s -r postgres

psql -U postgres -h 127.0.0.1

alter user postgres with password 'mypassword';
相关推荐
Omics Pro3 分钟前
Agentic AI正在重构整个生物信息学工作流
大数据·数据库·人工智能·机器学习·语言模型·自然语言处理·重构
小杍随笔16 分钟前
【Rust全栈项目接入UUID主键实战:从选型到PostgreSQL适配(含v7优化)】
开发语言·postgresql·rust
运维行者_9 小时前
企业无线网络监控的挑战与智能化演进趋势
大数据·运维·服务器·网络·数据库
国强_dev10 小时前
技术探讨:使用 stunnel 加密转发数据库连接时,如何获取客户端真实 IP?
数据库·网络协议·tcp/ip
@insist12310 小时前
系统规划与管理师-信息系统规划核心工作要点解析
数据库·软考·系统规划与管理师·软件水平考试·系统规划与管理工程师
超级数据查看器10 小时前
超级数据查看器 v10.0 发布
java·大数据·数据库·sqlite·安卓
数安3000天10 小时前
增量数据如何自动分类分级,避免目录“过期“?
大数据·数据库
南墙上的石头11 小时前
麒麟 V10 重装人大金仓 V8R6 踩坑实录(含 MySQL 兼容模式)
数据库·mysql
画中有画12 小时前
论向量数据库在项目中的应用
数据库
spider_xcxc13 小时前
Redis 数据库高质量实践指南(一)
运维·数据库·redis·oracle·云计算