源码包下载地址: Index of /
尽量选择稳定版本
前置条件
创建用户,因为搭建PG数据库不能在超管下操作 useradd postgres
卸载 包含postgresql名的程序包
yum remove postgresql*
查是否存在 /usr/psqlXXX文件夹,有的话删除,例如 rm -rf /usr/pgsql-12
安装
-
下载或上传PG源码包
wget -c https://ftp.postgresql.org/pub/source/v12.3/postgresql-12.3.tar.gz
-
解压源码包到当前路径:
tar xf postgresql-12.3.tar.gz -C /home/postgres && cd /home/postgres chown -R postgres.postgres postgresql-12.3
-
安装依赖
yum -y install make gcc
-
创建安装目录和数据目录(实例的也一并创建)
su root
mkdir -p /data/pg12 /data/pgdata5432 /data/pgdata5433 /data/pgdata5434 && chown postgres.postgres /data/pg12 /data/pgdata5432 /data/pgdata5433 /data/pgdata5434
su postgres
-
编译
cd /home/postgres/postgresql-12.3/
./configure --prefix=/data/pg12 --without-readline --without-zlib
make -j 4 && make install
-
回到 postgres 用户的家目录,配置用户环境变量
vi .bash_profile
PGHOME=/data/pg12
PATH=\$PATH:\$HOME/.local/bin:$HOME/bin:\$PGHOME/bin
source .bash_profile
-
初始化生成PG数据库目录,修改端口
initdb /data/pgdata5432
vim /data/pgdata5432/postgresql.conf
listen_addresses = '*'
port = 5432
-
启动
pg_ctl -D /data/pgdata5432-l logfile start
restart重启
stop 停止
status 状态
多实例
-
创建流复制操作的用户
psql -U postgres -p 5432
alter user postgres with passwdd 'qwe123';
create role replica login replication encrypted password 'qwe123';
-
修改配置文件,增加一行
vim /data/pgdata5432/pg_hba.conf
host replication replica 192.168.1.0/24 md5
-
初始化
initdb -D /data/pgdata5433
-
修改监听端口,防止端口冲突
vim /data/pgdata5433/postgresql.conf
listen_addresses = '*'
port = 5433
-
启动
pg_ctl -D /data/pgdata5433-l logfile start