珍惜当下 展望未来!

postgresql安装配置和基本操作

postgresql安装配置和基本操作

1.安装

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

参考官网

PGSQL的官方地址:https://www.postgresql.org/

PGSQL的国内社区:http://www.postgres.cn/v2/home

点击download

https://www.postgresql.org/download/linux/redhat/

image-20221118231610313

# 下载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用户去玩.

image-20221118234308304

远程连接配置

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

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

image-20221119163754064

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

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

服务级别的配置在postgresql.conf

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

image-20221119161430005

重启生效

sudo systemctl restart postgresql-12

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

日志配置

在postgresql.conf文件

image-20221119161637881

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服务--》数据库--》对象(表 视图 所有 触发器……)

image-20221119171800108

基本命令

\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服务--》数据库--》对象(表 视图 所有 触发器……)image-20221119171954585

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

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

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

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

\help grant
posted @ 2022-11-19 17:37  嘿嘿-  阅读(528)  评论(0编辑  收藏  举报