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
客户
使用的软件要求和约定
类别 | 要求,约定或使用的软件版本 |
---|---|
系统 | RHEL 8 /CentOS 8 |
软件 | PostgreSQL服务器10.5-1.el8 |
其他 | 以root身份或通过root特权访问Linux系统sudo 命令。 |
约定 | #-要求给出linux命令可以直接以root用户身份或通过使用root特权以root特权执行sudo 命令$-要求给出linux命令以普通非特权用户身份执行 |
本地PostgreSQL安装和数据库访问的分步说明
- 安装PostreSQL服务器。
执行以下
dnf
执行PostreSQL服务器的命令软件包安装:# dnf install postgresql-server
- 初始化PostgreSQL数据库:
# postgresql-setup --initdb --unit postgresql * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
-
启动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 [::]:*
- 访问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数据库远程访问和安全连接
- 设置密码
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
- 使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 [::]:*
- 启用MD5加密的密码身份验证:
# echo "host all all 0.0.0.0/0 md5" >> /var/lib/pgsql/data/pg_hba.conf
- 应用PostgreSQL配置更改:
# systemctl restart postgresql
- 打开防火墙港口
5432
对于远程PostgreSQL传入流量:# firewall-cmd --zone=public --permanent --add-service=postgresql # firewall-cmd --reload
- 从远程位置连接到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=#