• 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    按照以上步骤安装即可,安装成功后,会创建 默认账户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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

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

    2)配置远程访问

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

    // 打开防火墙端口
    sudo firewall-cmd --add-port=5432/tcp --permanent
    // 刷新防火墙
    sudo firewall-cmd --reload
    
    • 1
    • 2
    • 3
    • 4

    3)修改配置文件

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

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

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

    允许所有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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    第三步、常用操作命令

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

    // 切换到postgres用户
    su postgres
    // 创建数据库 mydb
    create database mydb;
    // 查看所有数据库
    \l
    // 切换到mydb数据库
    \c mydb
    // 删除
    drop database mydb;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

    // 创建表
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    创建表语句与其他数据库语言类似,注意的是主键递增序列用 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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

    异常处理

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

  • 相关阅读:
    git都在自己的个人分支开发吗?功能分支和个人分支工作流
    鲜花销售小程序|基于微信小程序的鲜花销售系统设计与实现(源码+数据库+文档)
    秋招攻略秘籍,吃透25个技术栈Offer拿到手软
    FME之PythonCaller遍历(循环)列表(数组)
    草履虫都能上手用的人工智能模型
    【C语言】位操作符详解
    Python 基础入门指南,干货分享来啦!
    谁将主导未来AI市场?Claude3、Gemini、Sora与GPT-4的技术比拼
    栈题目:解析布尔表达式
    DAY27 93. 复原IP地址 + 78. 子集 + 90.子集II
  • 原文地址:https://blog.csdn.net/u012190388/article/details/128025382