CentOS 7安装PostgreSQL 15版本数据库

目录

一、何为PostgreSQL?

二、PostgreSQL安装

2.1安装依赖

[2.2 执行安装](#2.2 执行安装)

[2.3 数据库初始化](#2.3 数据库初始化)

[2.4 配置环境变量](#2.4 配置环境变量)

[2.5 创建数据库](#2.5 创建数据库)

[2.6 配置远程](#2.6 配置远程)

[2.7 测试远程](#2.7 测试远程)

三、常用命令

四、用户创建和数据库权限


一、何为PostgreSQL?


PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES, 版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。POSTGRES 领先的许多概念在很久以后才出现在一些商业数据库系统中。

PostgreSQL是最初的伯克利代码的开源继承者。它支持大部分 SQL 标准并且提供了许多特性:

  • 复杂查询
  • 外键
  • 触发器
  • 可更新视图
  • 事务完整性
  • 多版本并发控制

同样,PostgreSQL可以用许多方法扩展,比如, 通过增加新的:

  • 数据类型
  • 函数
  • 操作符
  • 聚集函数
  • 索引方法
  • 过程语言

官网地址: https://www.postgresql.org/download/linux/redhat/

连接工具: https://www.pgadmin.org/download/


二、PostgreSQL安装


2.1安装依赖


bash 复制代码
# 获取所需依赖包
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libzstd-1.5.5-1.el7.x86_64.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/llvm5.0-devel-5.0.1-7.el7.x86_64.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/llvm5.0-5.0.1-7.el7.x86_64.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/llvm5.0-libs-5.0.1-7.el7.x86_64.rpm
 
 
yum install -y libzstd-1.5.5-1.el7.x86_64.rpm
yum install -y centos-release-scl-rh llvm5*
yum install -y epel-release

依赖下载安装完成

2.2 执行安装


cs 复制代码
wget --no-check-certificate  https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 安装 PostgreSQL
sudo yum install -y postgresql15-server postgresql15-devel

安装完成

2.3 数据库初始化


css 复制代码
# 初始化DB
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

# 开机启动|启动|重启|状态|停止 命令
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
sudo systemctl restart postgresql-15
sudo systemctl status postgresql-15
sudo systemctl stop postgresql-15

确认启动

2.4 配置环境变量


/etc/profile文件中添加如下配置:

cs 复制代码
# PGSQL_HOME
export PGSQL_HOME=/usr/pgsql-15
export PATH=$PATH:$PGSQL_HOME/bin

配置完成后 记得 source一下下。

2.5 创建数据库


cs 复制代码
# 切换用户
su postgres
# 进入命令行
psql

#创建DB
create database test_db
    
alter user postgres with password 'winner@001';

进入数据库命令行 创建数据库并

启动默认端口:5432

2.6 配置远程


cs 复制代码
# 编辑
vim /var/lib/pgsql/15/data/postgresql.conf
修改参数:
listen_addresses = '*'

# 编辑配置
vim /var/lib/pgsql/15/data/pg_hba.conf
# 添加内容
host    all             all              0.0.0.0/0              md5

# 重启
systemctl restart postgresql-15

2.7 测试远程


命令行测试

cs 复制代码
psql -h 主机IP -p 端口  -U 用户名 -W -d 数据库

使用Navicat162 连接, 下载最新的 Navicat ,要不然会报错


三、常用命令


输入命令 su postgres 然后在输入命令psql 如果一切正常,系统提示符会变为"postgres=#",表示这时已经进入了数据库控制台

  • \l:列出系统中的数据库
  • \h:查看SQL命令的解释,比如\h select。
  • \?:查看psql命令列表。
  • \l:列出所有数据库。
  • \c [database_name]:连接其他数据库。
  • \d:列出当前数据库的所有表格。
  • \du:列出所有用户。
  • \e:打开文本编辑器。
  • \conninfo:列出当前数据库和连接的信息。

切换数据库并 查询users 表


四、用户创建和数据库权限


添加名为kangll的用户,并设置密码'123456', 给kangll用户,创建数据库叫kangll_test

cs 复制代码
postgres=# create user kangll with password '123456';
CREATE ROLE
postgres=# create database kangll_test owner kangll;
CREATE DATABASE
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 kangll    |                                                            | {}
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

postgres=# \l

将 kangll_test 库的所有权限赋予kangll用户

cs 复制代码
grant all privileges on database kangll_test to kangll;
 
grant usage on schema public to kangll;
 
grant all privileges on all tables in schema public to kangll;
 
grant all privileges on all sequences in schema public to kangll;
 
grant select,insert,update,delete on all tables in schema public to kangll;
 
grant all on schema public to kangll;

pg 默认所有用户都可以在名称为public的schema中创建表,只读用户不允许创建。

kang_test 库中创建 stu 表

cs 复制代码
CREATE TABLE stu(
  stu_id BIGINT NOT NULL,
  stu_name VARCHAR(255) NOT NULL);

# 插入数据
INSERT INTO stu VALUES(1, 'kangll');

# 查询
SELECT * FROM stu;

修改角色为超级用户角色

bash 复制代码
alter role kangll  with superuser;

撤销用户权限

cs 复制代码
/* 撤销用户权限 */
REVOKE privileges ON tablename FROM user;
相关推荐
不羁。。2 小时前
【撸靶笔记】第八关:GET - Blind - Boolian Based - Single Quotes
数据库·sql·mybatis
AwhiteV3 小时前
利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
数据库·人工智能·自然语言处理·oracle·大模型·text2sql
m0_595199853 小时前
Redis(以Django为例,含具体操作步骤)
数据库·redis·缓存
爱尚你19934 小时前
MySQL 三大日志:redo log、undo log、binlog 详解
数据库·mysql
小猿姐5 小时前
KubeBlocks AI:AI时代的云原生数据库运维探索
数据库·人工智能·云原生·kubeblocks
NocoBase6 小时前
10 个开源工具,快速构建数据应用
数据库·低代码·开源
麻辣清汤7 小时前
结合BI多维度异常分析(日期-> 商家/渠道->日期(商家/渠道))
数据库·python·sql·finebi
Kan先生8 小时前
对象存储解决方案:MinIO 的架构与代码实战
数据库·python
超级迅猛龙8 小时前
保姆级Debezium抽取SQL Server同步kafka
数据库·hadoop·mysql·sqlserver·kafka·linq·cdc
杨过过儿9 小时前
【Task02】:四步构建简单rag(第一章3节)
android·java·数据库