linux上安装 最好是centos7.6或者7.8,
参考官网
PGSQL的官方地址:PostgreSQL: The world's most advanced open source database
PGSQL的国内社区:PostgreSQL中文社区:: 世界上功能最强大的开源数据库...
点击download
PostgreSQL: Linux downloads (Red Hat family)

- # 下载PGSQL的rpm包
- sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
- # 安装PGSQL12的软件程序,需要下载,需要等一会,一般不会失败,即便失败,他也会重新帮你找镜像
- sudo yum install -y postgresql12-server
- # 数据库初始化
- sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
- # 设置开启启动项,并设置为开启自行启动
- sudo systemctl enable postgresql-12
- # 启动PGSQL
- sudo systemctl start postgresql-12
PostgreSQL不推荐使用root管理,在安装成功postgreSQL后,他默认会给你创建一个用户:postgres,
密码随机。。。。。
玩PGSQL前,先切换到postgres
- #查服务状态
- systemctl status postgresql-12.service
-
- #切换用户
- su postgres
-
- # 连接plsql(默认localhost:5432 用户为postgres) 进入客户端工具
- psql
- # 查看有哪些库,如果是新安装的,有三个库,一个是postgres,template0,template1
- \l
主要搞两个配置 远程连接,日志,相关配置文件所在目录
/var/lib/pgsql/12/data
图可以看到,postgreSQL的核心文件,都属于postgres用户,操作的时候,尽可能的别用root用户,容易玩出坑,尽可能先切换到postgres用户去玩.

默认不支持远程连接,和mysql基本一样
配置远程连接需要修改配置文件 pg_hba.conf

- # 第一块
- local:代表本地连接,host代表可以指定连接的ADDRESS
- # 第二块
- database编写数据库名,如果写all,代表所有库都可以连接
- # 第三块
- user编写连接的用户,可以写all,代表所有用户
- # 第四块
- address代表那些IP地址可以连接
- # 第五块
- method加密方式,这块不用过多关注,直接md5
- # 直接来个痛快的配置吗,允许任意地址的全部用户连接所有数据库
- host all all 0.0.0.0/0 md5
为了实现远程连接,除了用户级别的这种配置,还要针对服务级别修改一个配置
服务级别的配置在postgresql.conf
发现默认情况下,PGSQL只允许localhost连接,直接配置为*即可解决问题

重启生效
sudo systemctl restart postgresql-12
最后使用远程navicate根据来测试即可
在postgresql.conf文件

postgreSQL默认情况下,只保存7天的日志,循环覆盖。
- # 代表日志是开启的。
- logging_collector = on
- # 日志存放的路径,默认放到当前目录下的log里
- log_directory = 'log'
- # 日志的文件名,默认是postgresql为前缀,星期作为后缀
- log_filename = 'postgresql-%a.log'
- # 默认一周过后,日志文件会被覆盖
- log_truncate_on_rotation = on
- # 一天一个日志文件
- log_rotation_age = 1d
- # 一个日志文件,没有大小限制
- log_rotation_size = 0
pgsql服务--》数据库--》对象(表 视图 所有 触发器……)

- \help:查看所有命令
- \help create user :查看具体命令的用法
-
-
- 进入客户端(默认用户是postgres 密码是随机的):psql
- 退出:\q
- 切换数据库:\
命令别去记 灵活使用\help
- # 创建用户(超级管理员)
- create user root with SUPERUSER PASSWORD 'root';
-
- #使用新用户连接 发现需要创建一个和用户名字相同的数据库 否则不让登陆
- psql -h 127.0.0.1 -p 5432 -U root -W
-
- # 切换连接的数据库
- \c root
-
- #查看所有用户信息
- \du
-
- #修改用户的密码
- alter user postgres with PASSWORD 'postgres';
权限操作前,要先知道PGSQL的逻辑结构
pgsql服务--》数据库--》对象(表 视图 所有 触发器……)

可以看到PGSQL一个数据库中有多个schema,在每个schema下都有自己的相应的库表信息,权限粒度会比MySQL更细一些。(一般我们只是在数据库级别做权限控制 不会到对象那么细)
在PGSQL中,权限的管理分为很多多层
- server、cluster、tablespace级别:这个级别一般是基于pg_hba.conf去配置
- database级别:通过命令级别操作,grant
- namespace、schema级别:玩的不多……不去多了解这个~~
- 对象级别:通过grant命令去设置
SHELL 复制 全屏
后面如果需要对database或者是对象级别做权限控制,直接基于grant命令去操作即可
\help grant
好了, 以上是本文所有内容,希望对大家有所帮助,也希望大家对码农之家多多支持,你们的支持是我创作的动力!祝大家生活愉快!