Centos系统上安装PostgreSQL和常用PostgreSQL功能

安装环境

软件 版本
CentOS CentOS 7.x
PostgreSQL 9.x-12.x

PostgreSQL安装

1、导入yum源

复制代码
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2、安装PostgreSQL服务

复制代码
sudo yum install -y postgresql12 postgresql12-server

3、初始化数据库

复制代码
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb

#Initializing database ... OK

4、启动PostgreSQL服务

复制代码
#启动PostgreSQL服务
sudo systemctl start postgresql-12

#设置PostgreSQL服务为开机启动
sudo systemctl enable postgresql-12

修改postgres账号密码

PostgreSQL安装成功之后,会默认创建一个名为postgres的Linux用户,初始化数据库后,会有名为postgres的数据库,来存储数据库的基础信息,例如用户信息等等,相当于MySQL中默认的名为mysql数据库。

postgres数据库中会初始化一名超级用户postgres

为了方便我们使用postgres账号进行管理,我们可以修改该账号的密码

1、进入PostgreSQL命令行

通过su命令切换linux用户为postgres会自动进入命令行

复制代码
su postgres

2、启动SQL Shell

复制代码
psql

3、修改密码

复制代码
ALTER USER postgres WITH PASSWORD 'NewPassword';

配置远程访问

1、开放端口

复制代码
sudo firewall-cmd --add-port=5432/tcp --permanent
sudo firewall-cmd --reload

2、修改IP绑定

复制代码
#修改配置文件
vi /var/lib/pgsql/12/data/postgresql.conf

#将监听地址修改为*
#默认listen_addresses配置是注释掉的,所以可以直接在配置文件开头加入该行
listen_addresses='*'

3、允许所有IP访问

复制代码
#修改配置文件
vi /var/lib/pgsql/12/data/pg_hba.conf

#在问价尾部加入
host  all  all 0.0.0.0/0 md5

4、重启PostgreSQL服务

复制代码
#重启PostgreSQL服务
sudo systemctl restart postgresql-12

配置完成后即可使用客户端进行连接

PostgreSQL shell常用语法示例

启动SQL shell:

复制代码
su postgres
psql

1、数据库相关语法示例

复制代码
#创建数据库
CREATE DATABASE mydb;

#查看所有数据库
\l

#切换当前数据库
\c mydb

#创建表
CREATE TABLE test(id int,body varchar(100));

#查看当前数据库下所有表
\d

2、用户与访问授权语法示例

复制代码
#新建用户
CREATE USER test WITH PASSWORD 'test';

#赋予指定账户指定数据库所有权限
GRANT ALL PRIVILEGES ON DATABASE mydb TO test;

#移除指定账户指定数据库所有权限
REVOKE ALL PRIVILEGES ON DATABASE mydb TO test

权限代码:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER、CREATE、CONNECT、TEMPORARY、EXECUTE、USAGE

相关推荐
zuiyuewentian16 小时前
借助 AI 在 Win11 上搭建 Rocky Linux:用 Visual Studio 直接调试 Linux 服务
linux·运维·visual studio
牢姐与蒯17 小时前
WSL2 迁移教程:把Ubuntu+WSL2从C盘挪到别的盘
linux·运维·服务器·网络·ubuntu·1024程序员节
垆边人似月.17 小时前
RDMA 文件传输踩坑(二):为什么 `sleep()` 不能保证接收端准备好了?
linux·服务器·网络·rdma
小手cool17 小时前
PostgreSQL 基础入门:从安装到核心概念
数据库·postgresql
代码派17 小时前
PostgreSQL 同构迁移上云方案|NineData 数据复制、实时增量与一致性校验
数据库·postgresql·上云·ninedata·迁移·数据库迁移·版本升级
DYWorker00117 小时前
第 1-10 课: 横切设施:锁、RCU、安全与观测怎么选?
linux
臻一17 小时前
rk3568---ftp无法连接
linux·ftp·3568
自由彩虹18 小时前
靶场通关16--victim1
linux·服务器·网络·安全·web安全·网络安全
叼烟扛炮18 小时前
Linux 学习笔记(三十九):网络基石——TCP/IP 模型与 UDP 实战
linux·运维·网络·笔记·学习·tcp/ip
闲云野鹤在人间18 小时前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd