在RHEL 8中如何安装PostgreSQL?

时间:2019-04-29 03:18:27  来源:igfitidea点击:

PostgreSQL是一个免费的开源ORDBMS(对象关系数据库管理系统)。它是世界上先进的开源数据库之一。
如何在RHEL 8上安装PostgreSQL,如何配置数据库服务器?

在RHEL 8上如何安装PostgreSQL

  1. 打开终端
  2. 查看要安装的PostgreSQL版本:sudo yum module list | grep postgresql
  3. 安装PostgreSQL sudo yum install @postgresql
  4. 初始化PostgreSQL数据库 sudo postgresql-setup --initdb

如何在RHEL 8上查看所有可安装的PostgreSQL

$ sudo yum module list | grep postgresql

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

## 安装 PostgreSQL 10.1
$ ### sudo yum install @postgresql:10.1

## 安装默认版本的PostgreSQL
$ sudo yum install @postgresql

如何初始化PostgreSQL数据库

安装PostgreSQL服务器后第一件事就是执行下面的命令

$ sudo postgresql-setup --initdb

如何为postgres帐户设置密码

$ sudo passwd postgres

如何启动/停止/重启PostgreSQL

### 启动PostgreSQL服务
$ sudo systemctl start postgresql
### 停止PostgreSQL服务
$ sudo systemctl stop postgresql
### 重启PostgreSQL服务
$ sudo systemctl restart postgresql
### 查看PostgreSQL服务的状态
$ sudo systemctl status postgresql

如何在开机时启动PostgreSQL服务

$ sudo systemctl enable postgresql

如何登录postgresql数据库

安装脚本创建了一个用户postgres。我们可以通过它使用psql命令来登录数据库

$ sudo -i -u postgres
$ psql

postgres=#输入 \q就可以退回到系统shell。

注意我们登录时没有提示需要密码。
解决这个问题,修改HBA配置:

/var/lib/pgsql/data/pg_hba.conf:

# 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

将原来的两个 ident改成 scram-sha-256

然后重启postgresql 服务器

$ sudo systemctl restart postgresql

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

首先创建一个Linux用户帐户

$ sudo useradd alice
$ sudo passwd alice

postgres帐户只是PostgreSQL服务器的一个管理用户。所以我们使用postgres登录:

$ sudo -i -u postgres

然后运行下面的命令,为新linux用户授予PostgreSQL 角色

$ createuser --interactive
Enter name of role to add :alice
### 新角色是否为超级用户
Shall the new role be a superuser? (y/n) n
###新角色是否可以创建数据库
Shall the new role be allowed to create databases? (y/n) y
### 新角色能否创建其他角色
Shall the new role be allowed to create more new roles? (y/n) n

下面的命令可以同时设置账号的密码

$ createuser --interactive --pwprompt
Enter name of role to add :alice
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n

使用我们的新用户来创建一个petdb看是否正常:

$ sudo -i -u postgres
$ createdb -O alice petdb

如何使用alice账号来连接petdb数据库

$ sudo -i -u alice
$ psql -d petdb -U tomalice

如何在PostgreSQL中创建新表

登录到postgresql数据库:

$ psql -d petdb -U alice

输入下面的SQL语句创建一个user表

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

输入 \d或者 \dt查看表的信息

\d
\dt

在PostgreSQL中如何插入新数据到表中

INSERT INTO user (id, email, name) VALUES (1, '[email protected]', '124.com');
INSERT INTO user (id, email, name) VALUES (2, '[email protected]', 'Foo Bar');
INSERT INTO user (id, email, name) VALUES (3, '[email protected]', 'aldis');
INSERT INTO user (id, email, name) VALUES (4, '[email protected]', 'Marlena John');

在PostgreSQL中如何搜索表

SELECT * FROM user;

如何删除数据库表中的数据

DELETE FROM user WHERE id = 4;

如何更新数据库表数据

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