一、下载
二、创建用户
useradd postgres
passwd postgres
三、安装依赖包
yum -y groupinstall "Development Tools" "Legacy UNIX Compatibility"
yum -y install bison flex readline* zlib-devel gcc* make
四、创建目录并授权
mkdir -p /usr/local/pg12
mkdir -p /pgdata/12/data
chown -R postgres. /pgdata/
chown -R postgres. /usr/local/pg12/
chmod -R 700 /pgdata/12/data -R
五、系统参数配置
[root@pg12 opt]# vim /etc/sysctl.conf
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 50100 64128000 50100 1280
fs.file-max = 7672460
net.ipv4.ip_local_port_range = 9000 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
生效参数:
sysctl -p
配置limits.conf
[root@sun01 opt]# vim /etc/security/limits.conf
soft nofile 131072
hard nofile 131072
soft nproc 131072
hard nproc 131072
soft core unlimited
hard core unlimited
soft memlock 50000000
hard memlock 50000000
建议关闭numa, 设置IO策略为deadline(机械)或者noop(SSD)
六、源码安装
[root@pg12 opt]# tar -vxf postgresql-12.6.tar.gz
[root@pg12 opt]# mv postgresql-12.6/ postgres/
[root@pg12 opt]# cd postgres/
[root@pg12 postgres]# ./configure --prefix=/usr/local/pg12 --with-pgport=5432
[root@pg12 postgres]# gmake world
[root@pg12 postgres]# gmake install-world
七. 设置环境变量
切换到创建的用户
[root@pg12 postgres]# su postgres
配置环境变量
[postgres@sun01 ~]$ vim .bash_profile
export PGDATA=/pgdata/12/data
export LANG=en_US.utf8
export PGHOME=/usr/local/pg12
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export DATE=`date +"%Y%m%d%H%M"`
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
export PGUSER=postgres
生效配置
[postgres@pg12 postgres]$ source .bash_profile
查看安装版本
[postgres@pg12 postgres]$ psql --version
八. 初始化数据
[postgres@pg12 postgres]$ initdb -A md5 -D $PGDATA -E utf8 --locale=C -W
设置密码:123456
九. 启动、关闭数据库
启动
pg_ctl -D /pgdata/12/data start
关闭
[postgres@postgres ~]$ pg_ctl -D $PGDATA stop -ms(所有事务完成客户端断开连接)
[postgres@postgres ~]$ pg_ctl -D $PGDATA stop -mf(推荐使用这种)
[postgres@postgres ~]$ pg_ctl -D $PGDATA stop -mi(杀掉,相当于kill -9)
重启
[postgres@sun01 ~]$ pg_ctl -D $PGDATA -l logfile restart -mf
十、登录
1、本地登录
psql
2、远程登录
配置远程访问
#修改pg实例的防火墙配置
cd /pgdata/12/data/
vim pg_hba.conf
#配置监听
vim postgresql.conf
远程访问
psql -d postgres -h 192.168.211.155 -p 5432 -U postgres
注:如果关闭linux后输入pg_ctl -D /pgdata/12/data -l logfile start后pg_ctl找不到可以配置
/etc/profile配置环境变量
export PGDATA=/pgdata/12/data
export LANG=en_US.utf8
export PGHOME=/usr/local/pg12
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export DATE=`date +"%Y%m%d%H%M"`
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
export PGUSER=postgres
PG的yum安装方式
开发测试可以直接用yum安装,生产建议用源码包安装
# Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# Install PostgreSQL:
sudo yum install -y postgresql12-server
# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12
sudo systemctl start postgresql-12