当前位置: 首页>>技术教程>>正文


如何在RHEL 8/CentOS 8上安装PostgreSQL服务器

, ,
PostgreSQL是free-opensource object-relational数据库管理系统。本教程的目的是在以下平台上执行PostgreSQL服务器的安装和基本配置RHEL 8/CentOS 8 Linux服务器。

在本教程中,您将学习:

  • 如何在RHEL 8 /CentOS 8上安装PostgreSQL数据库服务器
  • 如何启动和启用PostgreSQL数据库服务器
  • 如何从本地主机和远程位置访问PostgreSQL数据库
  • 如何设置默认密码postgres用户
  • 如何使PostgreSQL在所有网络上侦听
  • 如何使用MD5密码验证保护PostgreSQL远程连接
  • 如何打开PostgreSQL防火墙端口
  • 如何使用建立与PostgreSQL服务器的远程连接psql客户
Initializing and accessing PostgreSQL database on Red Hat Enterprise Linux 8

在Red Hat Enterprise Linux 8上初始化和访问PostgreSQL数据库

使用的软件要求和约定

软件要求和Linux命令行约定
类别 要求,约定或使用的软件版本
系统 RHEL 8 /CentOS 8
软件 PostgreSQL服务器10.5-1.el8
其他 以root身份或通过root特权访问Linux系统sudo命令。
约定 -要求给出linux命令可以直接以root用户身份或通过使用root特权以root特权执行sudo命令$-要求给出linux命令以普通非特权用户身份执行

本地PostgreSQL安装和数据库访问的分步说明




  1. 安装PostreSQL服务器。

    执行以下dnf执行PostreSQL服务器的命令软件包安装

    
    # dnf install postgresql-server
    
  2. 初始化PostgreSQL数据库:
    
    # postgresql-setup --initdb --unit postgresql
     * Initializing database in '/var/lib/pgsql/data'
     * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
    
  3. 启动PostgreSQL,并有选择地启用它以在重新启动后启动。

    
    # systemctl start postgresql
    # systemctl enable postgresql
    

    此时,PostreSQL服务器应已启动并正在运行,并在本地主机端口上进行侦听5432。采用ss命令以确认是这种情况:

    $ ss -nlt
    State  Recv-Q  Send-Q     Local Address:Port     Peer Address:Port  
    LISTEN 0       128              0.0.0.0:111           0.0.0.0:*     
    LISTEN 0       32         192.168.122.1:53            0.0.0.0:*     
    LISTEN 0       128              0.0.0.0:22            0.0.0.0:*     
    LISTEN 0       128            127.0.0.1:5432          0.0.0.0:*     
    LISTEN 0       128                 [::]:111              [::]:*     
    LISTEN 0       128                 [::]:22               [::]:*     
    LISTEN 0       128                [::1]:5432             [::]:*
    


  4. 访问PostreSQL数据库。

    在RHEL 8 /CentOS 8系统上安装PostgreSQL数据库时,安装程​​序还将自动创建一个新的默认用户。postgres

    的默认密码postgres用户未设置,因此为空。要访问PostgreSQL数据库,首先执行su以root用户命令切换到postres用户。然后,输入psql登录数据库。

    例:

    # su - postgres
    $ psql
    psql (10.5)
    Type "help" for help.
    
    postgres=#
    

PostgreSQL数据库远程访问和安全连接

  1. 设置密码postgres用户。

    为了远程访问PostreSQL服务器,我们将首先为postres用户:

    
    # su - postgres
    $ psql
    psql (10.5)
    Type "help" for help.
    
    postgres=# \password postgres
    Enter new password: 
    Enter it again: 
    postgres=# exit
    postgres-# \q
    


  2. 使PostgreSQL服务器能够在所有可用网络上侦听。

    编辑主配置文件/var/lib/pgsql/data/postgresql.conf

    
    # nano /var/lib/pgsql/data/postgresql.conf
    

    准备就绪后,将以下行添加到连接和认证部分:

    
    listen_addresses = '*'
    

    采用ss确认PostgreSQL正在监听的命令0.0.0.0网络:

    $ ss -nlt
    State  Recv-Q  Send-Q     Local Address:Port     Peer Address:Port  
    LISTEN 0       128              0.0.0.0:111           0.0.0.0:*     
    LISTEN 0       32         192.168.122.1:53            0.0.0.0:*     
    LISTEN 0       128              0.0.0.0:22            0.0.0.0:*     
    LISTEN 0       128            0.0.0.0:5432          0.0.0.0:*     
    LISTEN 0       128                 [::]:111              [::]:*     
    LISTEN 0       128                 [::]:22               [::]:*     
    LISTEN 0       128                [::]:5432             [::]:*
    
  3. 启用MD5加密的密码身份验证:
    
    # echo "host all all 0.0.0.0/0  md5" >> /var/lib/pgsql/data/pg_hba.conf
    
  4. 应用PostgreSQL配置更改:
    
    # systemctl restart postgresql
    
  5. 打开防火墙港口5432对于远程PostgreSQL传入流量:
    
    # firewall-cmd --zone=public --permanent --add-service=postgresql
    # firewall-cmd --reload
    
  6. 从远程位置连接到PostgreSQL数据库服务器。

    首先安装psql远程主机上的PostgreSQL客户端工具:

    
    RHEL/CENTOS
    # dnf install postgresql
    UBUNTU/DEBIAN
    # apt install postgresql-client
    

    创建到主机的远程连接,例如。192.168.1.151作为一个postgres用户和上面定义的用户密码步骤1:

    
    $ psql -h 192.168.1.151 -U postgres
    Password for user postgres: 
    psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1), server 10.5)
    Type "help" for help.
    
    postgres=# 
    

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9514.html,未经允许,请勿转载。