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;
相关推荐
chengooooooo20 分钟前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser1 小时前
【SQL】多表查询案例
数据库·sql
Galeoto1 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
希忘auto2 小时前
详解Redis在Centos上的安装
redis·centos
人间打气筒(Ada)2 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231112 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql
喝醉酒的小白2 小时前
PostgreSQL:更新字段慢
数据库·postgresql
敲敲敲-敲代码2 小时前
【SQL实验】触发器
数据库·笔记·sql
和道一文字yyds2 小时前
MySQL 中的索引数量是否越多越好?为什么?如何使用 MySQL 的 EXPLAIN 语句进行查询分析?MySQL 中如何进行 SQL 调优?
数据库·sql·mysql
落笔画忧愁e3 小时前
FastGPT快速将消息发送至飞书
服务器·数据库·飞书