最近北京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 信任模式hostallall 0.0.0.0/0 scram-sha-256// 重启服务sudo systemctl restart postgresql-15
配置文件新增如下图所示。
用Navicat连接数据库,连接信息如下图所示。
第三步、常用操作命令
数据库,即创建数据库,切换数据库等
// 切换到postgres用户su postgres// 创建数据库 mydbcreate 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