• postgresql安装配置和基本操作


    1.安装

    linux上安装 最好是centos7.6或者7.8,

    参考官网

    PGSQL的官方地址:PostgreSQL: The world's most advanced open source database

    PGSQL的国内社区:PostgreSQL中文社区:: 世界上功能最强大的开源数据库...

    点击download

    PostgreSQL: Linux downloads (Red Hat family)

    1. # 下载PGSQL的rpm包
    2. sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    3. # 安装PGSQL12的软件程序,需要下载,需要等一会,一般不会失败,即便失败,他也会重新帮你找镜像
    4. sudo yum install -y postgresql12-server
    5. # 数据库初始化
    6. sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
    7. # 设置开启启动项,并设置为开启自行启动
    8. sudo systemctl enable postgresql-12
    9. # 启动PGSQL
    10. sudo systemctl start postgresql-12

    PostgreSQL不推荐使用root管理,在安装成功postgreSQL后,他默认会给你创建一个用户:postgres,

    密码随机。。。。。

    玩PGSQL前,先切换到postgres

    1. #查服务状态
    2. systemctl status postgresql-12.service
    3. #切换用户
    4. su postgres
    5. # 连接plsql(默认localhost:5432 用户为postgres) 进入客户端工具
    6. psql
    7. # 查看有哪些库,如果是新安装的,有三个库,一个是postgres,template0,template1
    8. \l

    2.配置

    主要搞两个配置 远程连接,日志,相关配置文件所在目录

    /var/lib/pgsql/12/data

    图可以看到,postgreSQL的核心文件,都属于postgres用户,操作的时候,尽可能的别用root用户,容易玩出坑,尽可能先切换到postgres用户去玩.

    远程连接配置

    默认不支持远程连接,和mysql基本一样

    配置远程连接需要修改配置文件 pg_hba.conf

    1. # 第一块
    2. local:代表本地连接,host代表可以指定连接的ADDRESS
    3. # 第二块
    4. database编写数据库名,如果写all,代表所有库都可以连接
    5. # 第三块
    6. user编写连接的用户,可以写all,代表所有用户
    7. # 第四块
    8. address代表那些IP地址可以连接
    9. # 第五块
    10. method加密方式,这块不用过多关注,直接md5
    11. # 直接来个痛快的配置吗,允许任意地址的全部用户连接所有数据库
    12. host all all 0.0.0.0/0 md5

    为了实现远程连接,除了用户级别的这种配置,还要针对服务级别修改一个配置

    服务级别的配置在postgresql.conf

    发现默认情况下,PGSQL只允许localhost连接,直接配置为*即可解决问题

    重启生效

    sudo systemctl restart postgresql-12

    最后使用远程navicate根据来测试即可

    日志配置

    在postgresql.conf文件

    postgreSQL默认情况下,只保存7天的日志,循环覆盖。

    1. # 代表日志是开启的。
    2. logging_collector = on
    3. # 日志存放的路径,默认放到当前目录下的log里
    4. log_directory = 'log'
    5. # 日志的文件名,默认是postgresql为前缀,星期作为后缀
    6. log_filename = 'postgresql-%a.log'
    7. # 默认一周过后,日志文件会被覆盖
    8. log_truncate_on_rotation = on
    9. # 一天一个日志文件
    10. log_rotation_age = 1d
    11. # 一个日志文件,没有大小限制
    12. log_rotation_size = 0

    3.基本操作

    pgsql逻辑结构图

    pgsql服务--》数据库--》对象(表 视图 所有 触发器……)

    基本命令

    1. \help:查看所有命令
    2. \help create user :查看具体命令的用法
    3. 进入客户端(默认用户是postgres 密码是随机的):psql
    4. 退出:\q
    5. 切换数据库:\

    用户操作

    命令别去记 灵活使用\help

    1. # 创建用户(超级管理员)
    2. create user root with SUPERUSER PASSWORD 'root';
    3. #使用新用户连接 发现需要创建一个和用户名字相同的数据库 否则不让登陆
    4. psql -h 127.0.0.1 -p 5432 -U root -W
    5. # 切换连接的数据库
    6. \c root
    7. #查看所有用户信息
    8. \du
    9. #修改用户的密码
    10. alter user postgres with PASSWORD 'postgres';

    权限操作

    权限操作前,要先知道PGSQL的逻辑结构

    pgsql服务--》数据库--》对象(表 视图 所有 触发器……)

    可以看到PGSQL一个数据库中有多个schema,在每个schema下都有自己的相应的库表信息,权限粒度会比MySQL更细一些。(一般我们只是在数据库级别做权限控制 不会到对象那么细

    在PGSQL中,权限的管理分为很多多层

    1. server、cluster、tablespace级别:这个级别一般是基于pg_hba.conf去配置
    2. database级别:通过命令级别操作,grant
    3. namespace、schema级别:玩的不多……不去多了解这个~~
    4. 对象级别:通过grant命令去设置

    SHELL 复制 全屏

    后面如果需要对database或者是对象级别做权限控制,直接基于grant命令去操作即可

    \help grant

    好了, 以上是本文所有内容,希望对大家有所帮助,也希望大家对码农之家多多支持,你们的支持是我创作的动力!祝大家生活愉快!     

  • 相关阅读:
    京东销售码洋与广告投入及销量预测【数据集+完整代码】
    Rust之Cargo的使用
    layui之会议OA系统4.0
    ssm医院人事管理系统设计与实现 毕业设计源码111151
    力扣hot100——第3天:11盛最多水的容器、15三数之和、17电话号码的字母组合
    【C刷题】day2
    RISC-V Reader 笔记(六)RV32V
    【Vue】用Vue代码详细介绍computed计算属性的用法
    GCN火车票识别项目 P1 火车票识别项目介绍 Pytorch LSTM/GCN
    GAN详解
  • 原文地址:https://blog.csdn.net/wuxiaopengnihao1/article/details/127939685