如何在RHEL 8上安装和设置PostgreSQL

时间:2020-01-09 10:40:53  来源:igfitidea点击:

如何使用命令行在RHEL 8上安装PostgreSQL关系数据库管理?
如何使用应用程序流在RHEL 8(Red Hat Enterprise Linux)服务器上安装和设置PostgreSQL?

说明:PostgreSQL是一个免费且开源的ORDBMS(对象关系数据库管理系统)。
它是世界上最先进的开源数据库。
该页面显示了如何在RHEL 8上安装PostgreSQL以及配置数据库服务器的其他方面。

如何在RHEL 8上安装和设置PostgreSQL

  • 打开终端窗口
  • 查找要在RHEL 8上安装的PostgreSQL版本:sudo yum module list | grep postgresql
  • 在RHEL 8上安装默认的PostgreSQL版本10:sudo yum install @ postgresql
  • 接下来在RHEL 8中初始化新的PostgreSQL数据库集群:sudo postgresql-setup --initdb

让我们详细查看所有命令。

如何在RHEL 8上查看所有可用的PostgreSQL应用程序流的列表

运行以下yum命令

$ sudo yum module list | grep postgresql

如何在RHEL 8上安装和使用PostgreSQL

在上一步中,我们看到RHEL 8附带了两个用于PostgreSQL服务器的应用程序流。
要安装PostgreSQL 9.6,运行:

$ sudo yum install @postgresql:9.6

默认值为PostgreSQL 10,因此运行以下yum命令将安装最新的稳定版本:

$ sudo yum install @postgresql

使用应用程序流在RHEL 8上安装和使用PostgreSQL

如何初始化新的PostgreSQL数据库集群

PostgreSQL服务器安装后执行的第一个操作是运行以下命令:

$ sudo postgresql-setup --initdb

在RHEL 8上创建新的PostgreSQL数据库集群

如何为Postgres帐户设置密码

运行以下passwd命令来设置密码:

$ sudo passwd postgres

输出示例:

Changing password for user postgres.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

如何启动/停止/重启PostgreSQL服务器

您需要使用systemctl命令:

sudo systemctl start postgresql ## <-- start the server ##
sudo systemctl stop postgresql ## <-- stop the server ##
sudo systemctl restart postgresql ## <-- resstart the server ##
sudo systemctl status postgresql ## <-- get status of the server ##

如何在启动时在RHEL 8上启用PostgreSQL服务器

再次使用systemctl命令,如下所示:

$ sudo systemctl enable postgresql

启动并启用PostgreSQL服务器

如何使用psql登录?

您需要使用psql命令。
它是PostgreSQL服务器的基于终端的前端。
它使您可以交互式地输入查询。
安装脚本创建了一个名为postgres的用户。
这是默认数据库和角色的默认帐户。
让我们使用sudo命令以postgres身份登录:

$ sudo -i -u postgres

运行:

$ psql

验证PostgreSQL数据库服务器的安装

postgres =#提示符下,执行\ q从命令行界面退出到PostgreSQL服务器。
您是否注意到您没有任何密码登录PostgreSQL?
让我们通过创建HBA配置来解决此问题:

$ sudo vi /var/lib/pgsql/data/pg_hba.conf

查找如下所示的行:

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

ident替换为scram-sha-256

# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

重新启动PostgreSQL服务器:

$ sudo systemctl restart postgresql

如何创建一个新的PostgreSQL用户帐户

首先创建一个名为tom的Linux用户帐户:

$ sudo useradd tom
$ sudo passwd tom

输出示例:

Changing password for user tom.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

postgres帐户不过是PostgreSQL服务器的管理用户。
因此,以postgres身份登录:

$ sudo -i -u postgres

运行以下createuser命令为tom Linux用户创建一个新的PostgreSQL角色:

$ createuser --interactive

定义一个名为tom的新PostgreSQL用户帐户

创建一个具有新角色密码的新用户帐户:

$ createuser --interactive --pwprompt

在PostgreSQL上用密码创建用户

最后,以postgres admin用户身份登录,为tom用户创建一个名为jerry的新数据库:

$ sudo -i -u postgres
$ createdb -O tom jerry

相关:PostgreSQL添加或创建用户帐户并授予数据库权限

如何与tom用户连接到jerry数据库?

只需运行以下命令:

$ sudo -i -u tom
$ psql -d jerry -U tom

使用名为jerry数据库的新用户tom连接到PostgreSQL服务器

如何建立新表格

登录:

$ psql -d jerry -U tom

执行以下SQL创建演示表:

CREATE TABLE demo(
id serial PRIMARY KEY,
email VARCHAR (100) UNIQUE NOT NULL,
name  VARCHAR (50) UNIQUE NOT NULL
);

查看有关演示表的信息:

\d

或者

\dt

让我们向表中添加一些数据,运行以下SQL:

INSERT INTO demo (id, email, name) VALUES (1, '[email protected]', '');
INSERT INTO demo (id, email, name) VALUES (2, '[email protected]', 'Foo Bar');
INSERT INTO demo (id, email, name) VALUES (3, '[email protected]', 'Roja T');
INSERT INTO demo (id, email, name) VALUES (4, '[email protected]', 'Marlena John');

查看数据:

SELECT * FROM demo;

删除一些数据:

DELETE FROM demo WHERE id = 4;

更新数据:

UPDATE demo SET email = '[email protected]' WHERE id = 2;