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;
相关推荐
Elastic 中国社区官方博客1 天前
Elasticsearch:使用 Agent Builder 的 A2A 实现 - 开发者的圣诞颂歌
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
2301_816660211 天前
PHP怎么处理Eloquent Attribute Inference属性推断_Laravel从数据自动推导类型【操作】
jvm·数据库·python
qq_372154231 天前
Go 中自定义类型与基础类型的显式转换规则详解
jvm·数据库·python
_下雨天.1 天前
NoSQL之Redis配置与优化
数据库·redis·nosql
LiAo_1996_Y1 天前
CSS如何实现文字渐变效果_通过background-clip实现艺术字
jvm·数据库·python
2401_887724501 天前
CSS如何让表单在手机端友好展示_利用Flexbox实现堆叠排版
jvm·数据库·python
数据库小组1 天前
MySQL 删库后怎么恢复?binlog2sql 之外,NineData 还能做什么
数据库·sql·mysql·安全·数据·ninedata·删库
zhangchaoxies1 天前
Layui轮播图(carousel)怎么设置自动播放间隔
jvm·数据库·python
切糕师学AI1 天前
HBase:一文搞懂分布式宽列数据库(原理 + 架构 + 实战)
数据库·分布式·nosql·hbase·分布式宽列数据库·wide column db
competes1 天前
慈善基金投资底层逻辑应用 顶层代码低代码配置平台开发结构方式数据存储模块
java·开发语言·数据库·windows·sql