Postgresql源码安装

689 阅读2分钟

这是我参与新手入门的第2篇文章。

要了解它,首先要安装它,拥有它。

环境

Centos 7.4 + PostgreSql 12.4

本次环境依赖包安装,使用的系统自带镜像包,若无自带镜像包,可配置网络yum源

www.cnblogs.com/enduo/p/907…

数据库安装包

pan.baidu.com/s/1_9PW-Zcv… 提取码:5wj6

以下命令若无额外说明,均在root用户下操作。

安装步骤

  1. 添加用户组
groupadd postgres
useradd -g postgres postgres
passwd postgres
  1. 创建数据及日志目录并授权
mkdir -p /app/pgsql/{data,log,archive}
chown -R postgres.postgres /app/pgsql
  1. 解压安装包
tar -xzvf postgresql-12.4.tar.gz -C /usr/local/
ln -s /usr/local/postgresql-12.4 /usr/local/pgsql
  1. 安装系统依赖包
mount -o loop /dev/sr0 /mnt

配置yum
cd /etc/yum.repos.d/
mkdir bak
mv CentOS-* bak
vi /etc/yum.repos.d/rhel.repo 

[rhel] 
name=rhel 
baseurl=file:///mnt/ 
enabled=1 
gpgcheck=0

yum install -y gcc readline-devel zlib-devel;
  1. 编译
cd /usr/local/postgresql-12.4
./configure
make & make install

编译完成后,该目录下应出现 bin 目录,若没出现再重新执行 make & make install,直到 bin 目录出现。(测试环境碰见过好几次这个问题不知啥原因)

  1. 修改操作系统参数
vi /etc/security/limits.conf

#for postgres
postgres soft  core unlimited
postgres hard  nproc unlimited
postgres soft  nproc unlimited
postgres hard  memlock unlimited
postgres hard  nofile 1024000
postgres soft  memlock unlimited
postgres soft  nofile 1024000
postgres hard  stack  65536
postgres soft  stack  65536
  1. 初始化数据库
su - postgres
cd /usr/local/pgsql/bin
./initdb -E utf8 -D /app/pgsql/data
  1. 添加环境变量
vi /home/postgres/.bash_profile

export PGHOME=/usr/local/pgsql/
export PGUSER=postgres
export PGPORT=5432
export PGDATA=/app/pgsql/data
export PGLOG=/app/pgsql/log/postgres.log
export PATH=$PGHOME/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
PATH=/usr/local/pgsql/bin:$PATH
export PATH

source /home/postgres/.bash_profile
  1. 修改数据库访问限制文件
vi /app/pgsql/data/postgresql.conf 

listen_addresses = '*'


vi /app/pgsql/data/pg_hba.conf
在文件的最下方追加如下命令(生产环境需要将其替换为远程访问数据库的IP地址或地址段) 

host all all 0.0.0.0/0 trust
  1. 启动数据库
su - postgres
pg_ctl -D $PGDATA -l $PGLOG start
  1. 修改数据库系统用户postgres的密码
su - postgres
psql
alter user postgres with password 'postgres';
  1. 参数优化 根据实际系统环境调整,如数据库内存必然不能超过系统内存
su - postgres
psql

alter system set max_connections = 500;
alter system set shared_buffers = '8GB';
alter system set checkpoint_completion_target = 0.8;
alter system set work_mem = '16MB';
alter system set maintenance_work_mem = '1024MB';
alter system set wal_buffers = '4MB';
  1. 新建用户、数据库、schema
su - postgres
psql

create user syd with password 'syd'; 
create database syd;
\c syd;
\c - syd;
create schema syd;
\q

安装体验了一把,发现好多概念跟Oracle区别不小,如用户、数据库、schema就差点搞混了,后续慢慢学习研究吧~