Linux centos7.6 在线及离线安装postgresql12 详细教程(rpm包安装)

一、在线安装

官网找到对应的版本

PostgreSQL:  https://www.postgresql.org/

 

1.配置yum

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2.在线安装PostgreSQL

sudo yum install -y postgresql12-server

安装完成后,查看一下配置路径,后面修改配置文件在该路径下

PostgreSQL有两个重要的配置文件:postgresql.confpg_hba.conf就在此路径下,此路径可修改,一般只在实际使用环境才修改)

这里就用默认路径,不做修改,后面离线安装时,我再修改成指定路径

 

3.初始化PostgreSQL

sudo /usr/pgsql-12/bin/postgresql-12-setup initdb

 

4.启动PostgreSQL服务

#设置开机自启动

sudo systemctl enable postgresql-12

#启动PostgreSQL服务

sudo systemctl start postgresql-12

 

5.修改密码

#切换用户,postgressql安装时会自启创建postgres用户

su - postgres

#进入数据库

psql

#修改密码

alter user postgres with password 'postgres';

 

6.配置远程访问

#进入该postgresql.conf文件中修改一下

vi /var/lib/pgsql/12/data/postgresql.conf

#listen_addresses = '*'        #表示监听所有的ip信息(记得去掉#)

#port = 5432                         #表示服务的端口,可以自定义为其他端口

 

#进入该pg_hba.conf文件中修改一下

vi /var/lib/pgsql/12/data/pg_hba.conf

#在最下面添加西面一行内容:

host    all             all             0.0.0.0/0               md5

修改允许访问的IP(以下配置允许所有的IP访问)

TYPE  DATABASE USER ADDRESS  METHOD

host    all    all   0.0.0.0/0   md5

 

#修改完成,需要重启服务才生效

systemctl restart postgresql-12

 

7.关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

 

#关闭并禁用 NetworkManager

systemctl stop NetworkManager

systemctl disable NetworkManager

 

#重启网络服务

systemctl restart network

8.Navicat测试

 

 

二、离线安装

1.下载软件包

PostgreSQL: https://www.postgresql.org/

 

进入后滑到最下面

 

找到需要的版本

 

下载这四个,下载的小版本号要一样的

 

下载完成后,上传到内网的服务器。

 

2.安装PostgreSQL

rpm的安装顺序,注意一定要按照顺序,否则安装失败

rpm -ivh postgresql12-libs-12.15-1PGDG.rhel7.x86_64.rpm

rpm -ivh postgresql12-12.15-1PGDG.rhel7.x86_64.rpm

安装 postgresql12-12.15-1PGDG.rhel7.x86_64.rpm 失败,执行依赖缺失

因为是在内网,无法直接下载安装依赖,所以要在外网的机器上下好包后传到内网服务器上

 

#在外网的机器上执行,下载暂不安装

yum install --downloadonly --downloaddir=/pg12_rpm libicu

 

将该包上传到内网服务器上,上传后,到包所在的文件夹下安装

rpm -ivh libicu-50.2-4.el7_7.x86_64.rpm

安装完成后,重新安装postgresql12-12.15-1PGDG.rhel7.x86_64.rpm,按顺序安装

rpm -ivh postgresql12-12.15-1PGDG.rhel7.x86_64.rpm

rpm -ivh postgresql12-server-12.15-1PGDG.rhel7.x86_64.rpm

rpm -ivh postgresql12-contrib-12.15-1PGDG.rhel7.x86_64.rpm

安装 postgresql12-contrib-12.15-1PGDG.rhel7.x86_64.rpm 失败,执行依赖缺失

error:Failed dependencies

libxslt.sn.1()(64bit) is needed by.postgresql12-contrib-12.4-1PGDG.rhel7.x06_64

libxslt.so.1(LIBL2_1.0.11)(64bit) is needed by.postgresq112-contrb-12.4-1PGDG.rhe17.x00_04

libxslt.so.1(LIBXML2_1.0.18)(64bit) is needed by postgresq112-contrib-12.4-1PGDG.rhe17.x0_b4

libxslt.so.1(LIBXL2_1.0.22)(64bit) is needed by postgresq112-contrib-12.4-1PGDG.rhel7.x0b_64

下载libxslt-1.1.28-6.el7.x86_64.rpm,然后上传到服务器上。

rpm -ivh  libxslt-1.1.28-6.el7.x86_64.rpm

然后再重新安装postgresql12-contrib-12.15-1PGDG.rhel7.x86_64.rpm

#注:如果有其他包也报依赖缺失,也是按上面的教程补全依赖

3.修改数据存储路径

在内网的,一般都是实际使用环境,有时会需要修改路径,所以我演示一下,不用的可跳过此项,直接初始化PostgreSQL即可

#创建自定义目录

mkdir /pgsqldata

 

#修改所属用户和用户组

chown  postgres:postgres  -R  /pgsqldata ;

Chmod  -R  700   /pgsqldata ;

 

#配置PostgreSQL库自定义目录,在该路径下的/usr/lib/systemd/system/postgresql-12.service文件中修改

vi /usr/lib/systemd/system/postgresql-12.service

 

#修改后执行

systemctl  daemon-reload

 

4.初始化PostgreSQL

sudo /usr/pgsql-12/bin/postgresql-12-setup initdb

 

5.启动PostgreSQL服务

#设置开机自启动

sudo systemctl enable postgresql-12

 

#启动PostgreSQL服务

sudo systemctl start postgresql-12

6.修改密码

#切换用户,postgressql安装时会自启创建postgres用户

su - postgres

#进入数据库

psql

#修改密码

alter user postgres with password 'postgres';

 

7.配置远程访问

#配置文件postgresql.conf,在自定义的目录/pgsqldata,进文件中修改一下

vi  /pgsqldata/postgresql.conf

#listen_addresses = '*'    #表示监听所有的ip信息

#port = 5432                 #表示服务的端口,可以自定义为其他端口

#/ 后面加要匹配的内容

 

#配置文件pg_hba.conf,在自定义的目录/pgsqldata,进文件中修改一下

vi /pgsqldata/pg_hba.conf

#在最下面添加下面一行内容

host    all             all             0.0.0.0/0               md5

 

#修改完成,需要重启服务才生效

systemctl restart postgresql-12

 

8.关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

 

#关闭并禁用 NetworkManager

systemctl stop NetworkManager

systemctl disable NetworkManager

 

#重启网络服务

systemctl restart network

9.Navicat测试

 

posted @   业余砖家  阅读(3268)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示