centos7.9 postgresql 16.0 源码安装部署

postgresql 16.0 源码安装部署

  • 环境准备

    系统 主机名 IP地址
    centos7.9 postgres 192.168.200.56
  • 软件准备

    postgresql-16.0.tar.gz
    https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz
    
  • 依赖安装

    yum -y install systemd-devel readline readline-devel zlib-devel gcc
    
  • 创建安装用户

    useradd postgres
    
    # 设置用户密码,密码设置复杂一点
    echo '123456' | passwd --stdin postgres
    
  • 源码编译安装

    # 安装目录
    mkdir -p /data/server/pgsql
    
    # 数据目录
    mkdir -p /data/server/pgsql/data
    
    # 解压编译安装
    tar -zxvf postgresql-16.0.tar.gz
    cd postgresql-16.0
    ./configure --prefix=/data/server/pgsql --without-icu --with-systemd
    make && make install
    
    # 修改目录属主、属组
    chown -R postgres:postgres /data/server/pgsql
    
    # 切换到postgres用户初始化数据目录
    su - postgres
    /data/server/pgsql/bin/initdb -D /data/server/pgsql/data
    
    
  • 开机自启设置

    vim /etc/systemd/system/postgresql.service
    
    [Unit]
    Description=PostgreSQL 16.0 database server
    Documentation=man:postgres(1)
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    
    Type=forking
    User=postgres
    Group=postgres
    OOMScoreAdjust=-1000
    ExecStart=/data/server/pgsql/bin/pg_ctl start -D /data/server/pgsql/data 
    ExecStop=/data/server/pgsql/bin/pg_ctl stop -D /data/server/pgsql/data
    ExecReload=/data/server/pgsql/bin/pg_ctl reload -D /data/server/pgsql/data 
    TimeoutSec=0
    
    [Install]
    WantedBy=multi-user.target
    
  • 启动服务

    systemctl daemon-reload
    systemctl enable postgresql
    systemctl start postgresql
    
  • 防火墙放行端口

    firewall-cmd --zone=public --permanent --add-port=5432/tcp
    firewall-cmd --reload
    
  • 连接数据库

    # 切换到 postgres用户
    su - postgres
    /data/server/pgsql/bin/psql
    
    # 创建用户及密码
    postgres=# create user gadmin password '123456';
    
    # 创建指定拥有者gadmin的数据库tt
    postgres=# create database tt owner gadmin;
    
  • 修改配置文件

    • postgresql.conf

      # 修改监听地址,否则无法远程连接
      listen_addresses = '*'
      port = 5432
      # 修改最大连接数
      max_connections = 1024
      # 设置socket目录
      unix_socket_directories = '/data/server/pgsql'
      # 开启日志获取
      logging_collector = on
      # 设置日志目录
      log_directory = 'pg_log'
      # 设置日志文件名称格式
      log_filename = 'postgresql-%Y-%m-%d.log'
      # 开启日志轮转
      log_truncate_on_rotation = on 
      
    • pg_hba.conf

      # IPv4 local connections:
      host    all             all             127.0.0.1/32            trust
      # 增加如下一行,远程连接,
      # tt为数据库名,gadmin为用户名,192.168.200.0/24为允许连接的地址范围,md5使用密码验证
      host    tt              gadmin          192.168.200.0/24        md5
      
  • 重启服务

    # 重启服务后就能使用gadmin账户远程连接tt数据库了
    systemctl restart postgresql
    
  • DBeaver连接postgresql
    centos7.9 postgresql 16.0 源码安装部署_第1张图片

你可能感兴趣的:(postgresql,数据库)