源码安装PostgreSQL12——CentOS7

源码包安装PostgreSQL12——CentOS7

  • 简要描述
    • 前置条件(root下操作)
    • 安装PostgreSQL12
    • 注意

简要描述

简单安装Postgres的操作步骤

前置条件(root下操作)

  • 如果已存在yum安装的postgresql,提供以下卸载方式

    # 停止postgresql,此处为注册了服务的停止方式,12版本
    systemctl stop postgresql-12
    # 卸载 包含postgresql名的程序包
    yum remove postgresql*
    # 删除postgres用户及其对应的用户目录(/home/postgres)
    userdel -r postgres
    # 检查是否存在 /usr/psqlXXX文件夹,有的话删除,例如
    rm -rf /usr/pgsql-12
    
  • 创建用户及用户组

    # 创建postgres用户组
    groupadd postgres
    # 创建postgres用户,用户位于postgres组内
    useradd -g postgres postgres
    # 为postgres用户设置密码
    passwd postgres
    
  • 安装部分依赖(一般是没有的)

    yum install gcc
    yum install readline-devel.x86_64
    yum install zlib-devel.x86_64
    

安装PostgreSQL12

  • 使用postgres用户管理PostgreSQL
    # 切换用户
    su postgres
    # 回到用户目录
    cd ~
    
  • 下载postgres12源码包(/home/postgres/postgresql-12.1.tar.gz)
    • wget -c https://ftp.postgresql.org/pub/source/v12.1/postgresql-12.1.tar.gz
  • 解压到当前路径下(/home/postgres/postgresql-12.1)
    • tar -zxvf postgresql-12.1.tar.gz
  • 配置及安装
    # 新建PostgreSQL安装路径下的文件夹(/home/postgres/postgresql)
    mkdir postgresql
    # 进入解压后的源码文件夹(/home/postgres/postgresql-12.1)
    cd postgresql-12.1
    # 检查、并配置(--prefix=/home/postgres/postgresql 为配置postgreSQL的安装路径)
    ./configure --prefix=/home/postgres/postgresql
    # 编译及安装
    make && make install
    
  • 配置环境变量
# 切换到用户根目录下(/home/postgres)
cd ~
# 编辑 .bash_profile
vi .bash_profile
# 修改为
# 新增 
PGHOME=/home/postgres/postgresql
PATH后追加 $PGHOME/bin
例如:PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
# 保存,退出(命令模式下Esc)
# 输入: wq!  Enter(回车)
# 重载.bash_profile
source .bash_profile
  • 初始化postgreSQL (/home/postgres/)
    # /home/postgres/PGDATA为postgres数据文件的存放路径
    initdb -D /home/postgres/PGDATA
    
  • 启动
    # /home/postgres/PGDATA为数据文件存放路径,里面也有一些配置文件
    pg_ctl -D /home/postgres/PGDATA -l logfile start
    
  • 停止
    pg_ctl -D /home/postgres/PGDATA -l logfile stop
    
  • 重启
    pg_ctl -D /home/postgres/PGDATA -l logfile restart
    
  • 查看状态
    pg_ctl -D /home/postgres/PGDATA -l logfile status
    

注意

  • postgreSQL,不修改配置文件,默认是只监听本地、只允许本地访问数据库
    • 在数据文件夹内
      • pg_hba.conf
        • 配置允许访问的IP及postgres用户
        • 允许任意IP通过密码访问postgres的任意用户
          • host all all 0.0.0.0/0 md5
      • postgresql.conf
        • 配置监听的IP范围等
        • 监听任意IP
          • listen_addresses = '*'
  • 重新加载修改后的pg_hba.conf文件
    • 使用psql客户端
      • postgres=# SELECT pg_reload_conf();
    • 使用pg_ctl命令(PG内置命令)
      • pg_ctl reload

你可能感兴趣的:(PostgreSQL)