Centos下安装postgreSQL

最近北京yq严重,在家学习下postgreSQL ,本次使用的是 Centos 环境安装,记录下来,方便备查。

第一步、下载与安装

postgre 支持 windows 和 linux 两种系统,本次在linux环境安装。
下载地址:postgreSQL官网
在官网上选择 Linux系统,使用 yum来下载软件,只需选择对应版本和平台,即可生成下载和安装的脚本。
在这里插入图片描述
生成脚本如下所示。

// 下载
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
// 安装
yum install -y postgresql15-server
// 初始化数据库
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
// 设置开机启动
sudo systemctl enable postgresql-15

按照以上步骤安装即可,安装成功后,会创建 默认账户postgres默认数据库postgres,存储数据库的基础信息,其中会初始化超级用户postgres
在这里插入图片描述

第二步、配置数据库信息
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

为了可以通过Navicat等工具连接,可进行以下设置

2)配置远程访问

将5432端口添加到防火墙列表

// 打开防火墙端口
sudo firewall-cmd --add-port=5432/tcp --permanent
// 刷新防火墙
sudo firewall-cmd --reload
3)修改配置文件

修改监听地址为任意地址,即修改postgresql.conf文件。

// 打开配置文件
vi /var/lib/pgsql/15/data/postgresql.conf
// 打开监听注释,监听地址改为*
listen_addresses = '*'
// 保存退出 esc
:wq

修改配置文件如下图所示。
在这里插入图片描述

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

// 打开配置文件
vi /var/lib/pgsql/15/data/pg_hba.conf
// 新增一行,若连接不上则将 scram-sha-256修改为trust 信任模式
host  all  all 0.0.0.0/0 scram-sha-256
// 重启服务
sudo systemctl restart postgresql-15

配置文件新增如下图所示。
在这里插入图片描述
用Navicat连接数据库,连接信息如下图所示。
在这里插入图片描述

第三步、常用操作命令

数据库,即创建数据库,切换数据库等

// 切换到postgres用户
su postgres
// 创建数据库 mydb
create database mydb;
// 查看所有数据库
l
// 切换到mydb数据库
c mydb
// 删除
drop database mydb;

操作结果如下图所示。
在这里插入图片描述
数据表,即创建表,插入数据等

// 创建表
create table business_order(id serial primary key,order_no varchar(255),sku_name varchar(255));
// 插入数据
insert into business_order(order_no,sku_name)values('20221126000001','iphone14 plus');
// 查看表内容
select * from business_order;
// 查看表结构
d business_order
// 查看所有表,序列等
d

创建表语句与其他数据库语言类似,注意的是主键递增序列用 serial,mysql 使用的是 auto_increment
在这里插入图片描述
查看表结构
在这里插入图片描述

第四步、数据库备份与还原

实际工作中会对数据库进行备份和还原,备份主要有三种格式
.bak 即压缩的二进制
.sql 即明文存储
.tar 即tarball压缩格式
数据库备份分单数据库备份,使用 pg_dump 命令;所有数据库备份,使用 pg_dumpall 命令。

// 切换到postgres用户
su postgres
// 单数据库备份-导出到当前目录
pg_dump mydb > mydb.bak
// 所有数据库备份,
pg_dumpall > backup.bak
// 整个数据库备份到指定位置
pg_dump -f /tmp/mydb.bak mydb
// 备份postgres数据库中business_order表
pg_dump -U postgres -f /tmp/mydb.sql -t business_order postgres
// 数据库恢复-直接恢复,注意先新增空数据库
psql -f /tmp/mydb.bak mydb
// 数据库恢复
pg_restore -U postgres -d business_order /temp/mydb.bak
// 查看目录
ls -l

执行结果如下图所示。
在这里插入图片描述

异常处理

1)Navicat连接报错
错误代码:authentication method 10 not supported
处理方案:在 pg_hba.conf 文件中可将新增的 0.0.0.0/0 的模式改为 trust