在工作过程中经常遇到内网安装PostgreSQL数据库的情况,内网隔绝互联网,无法在线安装相关依赖,只能离线安装,这里将以CentOS7系统为例,简单介绍离线安装PostgreSQL14数据库的过程。
这并不是最新版本的PostgreSQL,因为二进制安装包总要等新版本发布一段时间后才会发布,如果需要安装最新版本的数据库,可选择源码安装。
源码安装方法请参考笔者的另一篇博文:https://blog.youkuaiyun.com/lxy_jrx/article/details/139008579。
1. 下载依赖及安装包
1.1 依赖
- zlib: http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/lz4-1.8.3-1.el7.x86_64.rpm。
- icu: http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/libicu-50.2-4.el7_7.x86_64.rpm。
1.2 安装包
PostgreSQL官网: https://www.postgresql.org/。
PostgreSQL15下载地址:https://download.postgresql.org/pub/repos/yum/15/redhat/rhel-7-x86_64/。
PostgreSQL14下载地址:https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-7-x86_64/。
这里选择下载14版本,需要下载的rpm包列表:
- postgresql14-14.4-1PGDG.rhel7.x86_64.rpm
- postgresql14-libs-14.4-1PGDG.rhel7.x86_64.rpm
- postgresql14-server-14.4-1PGDG.rhel7.x86_64.rpm
这里也有博主提前下载好的安装包: https://download.youkuaiyun.com/download/lxy_jrx/89319600。
2. 安装 && 初始化
# 安装依赖
rpm -ivh lz4-1.8.3-1.el7.x86_64.rpm
rpm -ivh libicu-50.2-4.el7_7.x86_64.rpm
# 安装数据库
rpm -ivh postgresql14-*.rpm
数据安装完成后,还不能直接使用,需要初始化数据库。
# 初始化数据库
cd /usr/pgsql-14/bin
./postgresql-setup initdb
# 查看数据库初始化日志,日志结尾处有完整的数据库启动命令
cat /var/lib/pgsql/14/initdb.log
数据库初始化完成后,有2个目录比较重要:
- /usr/pgsql-14/,该目录存放数据库核心命令,例如pg_ctl(数据库启动/停止)、psql(SQL命令行客户端),以及所有数据库共享的配置文件(在同一机器上可以同时启动多个数据库服务进程),例如postgresql.conf,数据库监听的端口号和绑定IP地址就是在文件中配置的。
- /var/lib/pgsql/14/data,数据库初始化后,默认的数据存储目录,该目录下也有postgresql.conf,但是这些配置只是针对当前数据库,该目录下另外一个重要的文件是pg_hba.conf,该文件用于配置数据库访问权限,添加远程访问的IP网段。
3. 数据库配置
在初始化完成后,先不要着急启动,需要先对数据库进行配置。
cd /var/lib/pgsql/14/data
vim postgresql.conf
# 主要修改绑定ip和日志目录
listen_addresses = 'localhost'
log_directory = '/var/lib/pgsql/14/logs/'
# 修改ip权限,允许远程链接
vim pg_hba.conf
# 找到IPv4 local connections这句话
# 然后添加自己需要的IP网段
host all all 192.168.16.186/24 md5
4. 启动数据库
# 启动数据库服务
systemctl start postgresql-14
# 关闭数据库服务
systemctl stop postgresql-14
服务启动成功后,建议修改postgres用户的密码。
cd /usr/pgsql-14/bin/
./psql
alter user postgres with password 'postgres';