Linux 上安装 PostgreSQL

文章目录

前言

提示:本次博客是centos7.9安装PostgreSQL12版本

名称

版本

Centos

7.9

postgresql

12

postgresql端口

5432

postgresql存储路径

/pgsql/12/data/

一、安装PostgreSQL

打开 PostgreSQL 官网

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

具体操作如下图所示:

Packages and Installers(软件包和安装程序)

Select your operating system family:(选择您的操作系统系列)

Select your Linux distribution:(选择您的 Linux 发行版)

选择完以上操作系统系列和操作系统发行版后会自动出现PostgreSQL Yum Repository如下图所示:

Select version:(选择要安装的数据库版本)

Select platform:(选择要安装的数据库操作系统)

Select architecture:(选择操作系统架构)

Copy, paste and run the relevant parts of the setup script:(复制、粘贴并运行设置脚本的相关部分)详细说明如下

复制代码
#安装PostgreSQL的yum仓库
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
#安装PostgreSQL 12版本
sudo yum install -y postgresql12-server
#初始化数据库(若要自定义数据库存储目录请先不要初始化数据库,参考后边章节后在初始化数据库)
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
#设置数据开机自启
sudo systemctl enable postgresql-12
#启动数据库
sudo systemctl start postgresql-12

数据库安装后的数据存储目录默认在/var/lib/pgsql/12/data,12为数据库的主版本号

二、修改数据库默认数据存储目录

#默认安装路径Environment=PGDATA=/var/lib/pgsql/15/data/

在没有初始化数据库之前,默认的data目录下是空的

1.自定义数据存放目录

复制代码
mkdir -p /pgsql/12/data/             #创建自定义数据存储目录
chown -R postgres:postgres /pgsql    #修改目录权限

2.修改自定义服务

复制代码
vi /usr/lib/systemd/system/postgresql-12.service
#修改默认环境变量数据存放路径,找到Environment修改为自己定义的数据存放目录
[Service]
Environment=PGDATA=/pgsql/12/data/   #修改完后保存退出
复制代码
#重新加载systemctl
systemctl daemon-reload

3.初始化数据库

复制代码
#初始化数据库
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb

可以看出/pgsql/12/data/目录下有很多文件,证明初始化成功

4.运行数据库

复制代码
#设置数据开机自启
sudo systemctl enable postgresql-12
#启动数据库
sudo systemctl start postgresql-12

三、配置数据库信息

1.修改密码

复制代码
#切换到postgres用户
su postgres
#切换SQL模式
psql
#修改密码
alter user postgres with password 'postgres123';
#创建test用户
create user test with password 'test';
#授权
grant all privileges on database mydb to test;
#退出
q

2.配置远程访问

复制代码
#打开防火墙端口
sudo firewall-cmd --add-port=5432/tcp --permanent
#刷新防火墙
sudo firewall-cmd --reload

3.修改配置文件

复制代码
#此处是修改默认存储路径(默认:/var/lib/pgsql/12/data)
vim /pgsql/12/data/postgresql.conf
#取消监听注释,监听地址改为* 
listen_addresses = '*'

修改配置文件如下图所示:

允许所有IP访问,即修改 pg_hba.conf 文件

复制代码
#此处是修改默认存储路径(默认:/var/lib/pgsql/12/data)
vim /pgsql/12/data/pg_hba.conf
#新增一行,若连接不上则将 scram-sha-256修改为trust 信任模式
host    all             all             0.0.0.0/0               trust
 重启服务
sudo systemctl restart postgresql-12

修改配置文件如下图所示:

用Navicat连接数据库,连接信息如下图所示:

四、权限

复制代码
-- 创建一个新的只读用户
CREATE ROLE readonly_user WITH LOGIN PASSWORD 'password';
 
-- 为用户授予数据库的只读权限
GRANT CONNECT ON DATABASE your_database_name TO readonly_user;
GRANT USAGE ON SCHEMA public TO readonly_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_user;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO readonly_user;

异常处理

1)Navicat连接报错 错误代码:authentication method 10 not supported 或 致命错误:用户"postgres" Password 认证失败:

处理方案:在 pg_hba.conf 文件中可将新增的 0.0.0.0/0 的模式改为 trust

相关推荐
wdfk_prog4 分钟前
Docker 29 与 containerd image store:镜像为什么会保存两种形态
运维·docker·容器
Java小学生丶12 分钟前
[开源自荐] ZTShell,一个使用 Tauri 2 + Rust 全程由 AI 开发的跨平台桌面 SSH 工具
linux·网络·centos7·云服务器·开发技巧·资源分享·个人私货
广州灵眸科技有限公司14 分钟前
灵眸科技EAI3572-Core-L核心板即将发布!八核+4TOPS NPU,面向工业与边缘AI
linux·运维·服务器·数据库·yolo
流浪00115 分钟前
Linux系统篇28——通信(五):信号量专篇:从电影院订票到内核一张大表,把信号量一次讲透
linux·运维·服务器
码农小韩20 分钟前
Linux应用开发(三)——Linux的文件属性与目录
linux·嵌入式软件开发·linux操作系统·嵌入式操作系统·linux应用开发
张洛闻Eren26 分钟前
云原生k8s【第七课】:集群监控与可观测性
linux·运维·docker·云原生·容器·kubernetes·k8s
29 分钟前
Python 图片处理:裁剪缩放至300×200,格式JPG/PNG/GIF,控制大小≤100KB
linux·前端·python
jonyleek3 小时前
低代码平台的数据架构设计:动态表单存储与查询优化
低代码·postgresql·开源·数据架构·动态表单·jvs低代码平台·jvs低代码
青禾8378 小时前
Linux 操作系统入门指南:从目录结构到常用命令
linux·运维·服务器