Linux 在线yum安装: PostgreSQL 15.6数据库

Linux 在线yum安装: PostgreSQL 15.6数据库

|-----------------------------|
| 💖The Begin💖点点关注,收藏不迷路💖 |

1、PostgreSQL数据库简介

🍒 PostgreSQL 中文文档

PostgreSQL(又称 Postgres)是一种强大、开源的关系型数据库管理系统(RDBMS),它具有高度的可靠性、稳定性和可扩展性。以下是关于 PostgreSQL 数据库的一些简要介绍:

主要特点:

1、开源: PostgreSQL 是基于开源许可证发布的,任何人都可以免费使用、修改和分发它。

2、关系型数据库: PostgreSQL 是一种关系型数据库管理系统,支持 SQL 查询语言,具有强大的数据处理能力。

3、可扩展性: PostgreSQL 支持多种插件和扩展,可以满足各种不同规模和需求的应用场景。

4、支持复杂数据类型: 除了传统的数据类型外,PostgreSQL 还支持数组、JSON、XML 等复杂数据类型。

5、事务支持: PostgreSQL 提供完整的 ACID 事务支持,确保数据的一致性和可靠性。

6、触发器和存储过程: 支持触发器和存储过程,可以在数据库层面实现业务逻辑。

7、并发控制: 具有强大的并发控制能力,能够处理大量并发访问请求。

8、安全性: 提供强大的用户认证和权限管理功能,保护数据安全。

9、扩展性: 可以轻松地通过扩展模块来增加额外的功能,如全文搜索、地理信息系统等。

主要组件:

1、PostgreSQL 服务器(postgres): 数据库服务进程,负责接收客户端请求并执行相应的操作。

2、pgAdmin: 基于图形界面的管理工具,用于管理数据库、执行 SQL 查询等操作。

3、psql: 命令行工具,用于与 PostgreSQL 数据库进行交互和执行 SQL 命令。

4、扩展模块: 提供额外功能的模块,如 PostGIS 用于地理信息系统、pgcrypto 用于加密等。

2、在线安装PostgreSQL15.6

官方文档:https://www.postgresql.org/download/linux/redhat/

1、安装软件仓库 RPM 包:

sql 复制代码
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm


2、安装 PostgreSQL 15:

sql 复制代码
sudo yum install -y postgresql15-server

3、可选:初始化数据库并设置自动启动:

sql 复制代码
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15

sudo systemctl status postgresql-15

4、查询已安装的 PostgreSQL 14 软件包的详细信息:

sql 复制代码
rpm -qi postgresql15


在 PostgreSQL 中,默认情况下会创建一个名为 "postgres" 的系统用户,用于管理 PostgreSQL 数据库服务。

3、配置 PostgreSQL的环境变量

1、编辑/etc/profile 配置文件:

sql 复制代码
vim /etc/profile 

2、在文件末尾添加以下行:

sql 复制代码
export PATH=$PATH:/usr/pgsql-15/bin


3、保存并应用更改:

sql 复制代码
source /etc/profile 

4、验证配置是否成功:

运行 psql --version 命令来验证 PostgreSQL 是否已经配置到系统环境变量中。如果成功配置,将显示 PostgreSQL 的版本信息。

sql 复制代码
psql --version

4、使用默认用户登录PostgreSQL

1、切换到 "postgres" 用户(默认不需要密码):

sql 复制代码
[root@zyl-server ~]# su postgres
bash-4.2$ psql
could not change directory to "/root": Permission denied
psql (15.6)
Type "help" for help.

postgres=# 

2、进入 PostgreSQL 命令行界面:

sql 复制代码
psql

3、修改 "postgres" 用户密码(postgres):

sql 复制代码
postgres=# ALTER USER postgres WITH PASSWORD 'postgres';
ALTER ROLE
postgres=# 

4、退出 PostgreSQL 命令行和 "postgres" 用户:

sql 复制代码
## 退出命令行
\q

## 退出postgres用户
exit

postgres=# \q
bash-4.2$ exit
exit

5、连接到 PostgreSQL 数据库(默认端口5432):

sql 复制代码
psql -h localhost -p 5432 -U postgres

5、配置 PostgreSQL 允许远程登录

通常情况下,postgresql.conf 文件位于 /var/lib/pgsql/15/data/ 下面。

1、修改 postgresql.conf 文件:

找到 postgresql.conf 中的 listen_addresses 配置项,并将其设置为 '*',以允许来自任何 IP 地址的连接。如果希望只允许特定IP地址的连接,将其设置为相应的IP地址即可。

sql 复制代码
cd /var/lib/pgsql/15/data/


vim postgresql.conf 

##添加一行或修改
listen_addresses ='*'


2、修改 pg_hba.conf 文件:

找到并编辑 pg_hba.conf 文件,该文件用于设置客户端认证规则。

sql 复制代码
cd /var/lib/pgsql/15/data/

vim pg_hba.conf

在 pg_hba.conf 文件中,添加一条允许远程连接的规则。例如,可以添加以下规则以允许所有IP地址的所有用户通过密码进行连接:

sql 复制代码
host    all             all             0.0.0.0/0               scram-sha-256

6、修改 PostgreSQL 默认端口

1、编辑 postgresql.conf 文件:

在文件中找到 port = 5432 这一行(默认端口为5432),将其修改为想要的新端口号,例如 port = 5433。

sql 复制代码
vim postgresql.conf

2、重启 PostgreSQL 服务:

重启 PostgreSQL 服务使配置生效。

sql 复制代码
sudo systemctl restart postgresql-15

7、创建数据库和表、远程用户zyl

1、创建数据库:

sql 复制代码
[root@zyl-server data]# psql -h localhost -p 5433 -U postgres
Password for user postgres: 
psql (15.6)
Type "help" for help.

postgres=# CREATE DATABASE db_pg01;
CREATE DATABASE
postgres=# 

2、创建新用户,并设置密码:

sql 复制代码
CREATE USER zyl WITH ENCRYPTED PASSWORD 'zyl@2024';


-- 授予用户 zyl 对数据库 db_pg01 的所有权限
GRANT ALL PRIVILEGES ON DATABASE db_pg01 TO zyl;

-- 授予用户 zyl 对表 users 的所有权限
GRANT ALL PRIVILEGES ON TABLE users TO zyl;

3、创建表、插入数据:

sql 复制代码
## 连接到db_pg01数据库

postgres=# \c db_pg01;
You are now connected to database "db_pg01" as user "postgres".
db_pg01=# 

##创建表、插入数据

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

INSERT INTO users (name, age) VALUES ('Alice', 25);
INSERT INTO users (name, age) VALUES ('Bob', 30);
INSERT INTO users (name, age) VALUES ('Charlie', 28);
INSERT INTO users (name, age) VALUES ('David', 35);
INSERT INTO users (name, age) VALUES ('Eve', 22);

8、pgAdmin远程访问该数据库(db_pg01)


|---------------------------|
| 💖The End💖点点关注,收藏不迷路💖 |

相关推荐
ajassi20006 分钟前
linux C 语言开发 (八) 进程基础
linux·运维·服务器
寻星探路16 分钟前
数据库造神计划第六天---增删改查(CRUD)(2)
java·大数据·数据库
..过云雨16 分钟前
05.【Linux系统编程】进程(冯诺依曼体系结构、进程概念、进程状态(注意僵尸和孤儿)、进程优先级、进程切换和调度)
linux·笔记·学习
matlab的学徒1 小时前
Web与Nginx网站服务(改)
linux·运维·前端·nginx·tomcat
Insist7531 小时前
prometheus安装部署与alertmanager邮箱告警
linux·运维·grafana·prometheus
盖世英雄酱581361 小时前
Read timed out问题 排查
java·数据库·后端
BAGAE2 小时前
MODBUS 通信协议详细介绍
linux·嵌入式硬件·物联网·硬件架构·iot·嵌入式实时数据库·rtdbs
灿烂阳光g2 小时前
SELinux 策略文件编写
android·linux
xqlily2 小时前
Linux操作系统之Ubuntu
linux·运维·ubuntu
阿部多瑞 ABU2 小时前
《基于国产Linux的机房终端安全重构方案》
linux·安全