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)

# 下载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  

2.配置

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

/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

3.基本操作

pgsql逻辑结构图

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

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值