Linux下PostgreSQL-12.0安装部署详细步骤

一、安装环境
  • postgresql-12.0

  • CentOS-7.6

  • 注意:确认linux系统可以正常连接网络,因为在后面需要添加依赖包。

二、pg数据库安装包下载

下载地址:PostgreSQL: File Browser

选择要安装的版本进行下载:

三、安装依赖包

在要安装postgresql数据库的Linux服务器上执行以下命令安装所需要的依赖包:
*

复制代码
    yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake
四、安装postgres

1、在根目录下新建/opt/pgsql文件夹,并将pgsql的压缩包移入。

  • 2、解压压缩包

复制代码
    tar -zxvf postgresql-12.0.tar.gz 

3、进入解压后的文件夹
*

复制代码
    cd postgresql-12.0

4、编译postgresql源码
*

复制代码
    ./configure --prefix=/opt/pgsql/postgresql

    make

    make install

至此,已完成postgreql的安装。进入/opt/pgsql/postgresql目录可以看到安装后的postgresql的文件。
*

五、创建用户组postgres并创建用户postgres
复制代码
    groupadd postgres

    useradd -g postgres postgres

    id postgres


*

六、创建postgresql数据库的数据主目录并修改文件所有者
  • 这个数据库主目录是随实际情况而不同,这里我们的主目录是在/opt/pgsql/postgresql/data目录下

复制代码
    mkdir data

    chown postgres:postgres data


*

七、配置环境变量

进入home/postgres目录可以看到.bash_profile文件。
*

复制代码
    cd /home/postgres

    ls -al

编辑修改.bash_profile文件。
*

复制代码
    vim .bash_profile 

添加以下内容。
*

复制代码
    export PGHOME=/opt/pgsql/postgresql
     
    export PGDATA=/opt/pgsql/postgresql/data
     
    PATH=$PATH:$HOME/bin:$PGHOME/bin

保存,退出vim。执行以下命令,使环境变量生效
*

复制代码
    source .bash_profile 
八、切换用户到postgres并使用initdb初使用化数据库
复制代码
    su - postgres
复制代码
initdb

可以看到/opt/pgsql/postgresql/data已经有文件了。

复制代码
cd /opt/pgsql/postgresql/data
九、配置服务

修改/opt/pgsql/postgresql/data目录下的两个文件。

postgresql.conf 配置PostgreSQL数据库服务器的相应的参数。

pg_hba.conf 配置对数据库的访问权限。

复制代码
vim postgresql.conf 

其中,参数"listen_addresses"表示监听的IP地址,默认是在localhost处监听,也就是127.0.0.1的ip地址上监听,只接受来自本机localhost的连接请求,这会让远程的主机无法登陆这台数据库,如果想从其他的机器上登陆这台数据库,需要把监听地址改为实际网络的地址,一种简单的方法是,将行开头的#去掉,把这个地址改为*,表示在本地的所有地址上监听。

复制代码
vim pg_hba.conf

host    all            all             0.0.0.0/0               trust
#新增这一行

找到最下面这一行,这样局域网的人才能访问

十、设置PostgreSQL开机自启动

PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下。

linux文件即为linux系统上的启动脚本

复制代码
cd /opt/pgsql/postgresql-12.0/contrib/start-scripts

切换为root用户,修改linux文件属性,添加X属性

复制代码
su root
复制代码
chmod a+x linux

复制linux文件到/etc/init.d目录下,更名为postgresql

复制代码
cp linux /etc/init.d/postgresql

修改/etc/init.d/postgresql文件的两个变量

prefix设置为postgresql的安装路径:/pgsql/postgresql

PGDATA设置为postgresql的数据目录路径:/pgsql/postgresql/data

复制代码
vim /etc/init.d/postgresql 

设置postgresql服务开机自启动

复制代码
chkconfig --add postgresql

执行service postgresql start,启动PostgreSQL服务

复制代码
service postgresql start
相关推荐
BioTender12 小时前
Xaira 发布 X-Automate:将物理 AI 与智能体 AI 引入实验室自动化
运维·人工智能·自动化
Percep_gan12 小时前
Linux中安装gitea,很详细
linux·elasticsearch·gitea
Z21-X13 小时前
云原生运维学习笔记:容器技术的演进、底层原理与 Docker 全生命周期管理
运维·笔记·学习·云原生
Rabitebla21 小时前
【Linux 底层原理】进程(十):进程等待详解---从僵尸进程到 wait、waitpid 与 status
linux·c++·笔记·学习·visual studio
Decay__1 天前
18_MySQL 智能巡检方案 —— 巡检项清单 / 一键巡检脚本 / 健康评分
运维·数据库·sql·mysql·架构
天远API1 天前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
Android系统攻城狮1 天前
Linux FFmpeg深度解析之avcodec_default_get_encode_buffer调用流程与实战(二十八)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频
程序员初一1 天前
8080 打不开的四层定位:监听地址、ufw、DOCKER 链、安全组
linux·ssh
程序开发阿元1 天前
swappiness 60 和 10 差在哪:一台 1C1G 的三轮对比
linux·ssh
无足鸟ICT1 天前
【RHCA+】mpstat命令(监控CPU)
linux