准备工作
系统版本: CentOS Linux release 7.4.1708 (Core)
数据库版本:psql (PostgreSQL) 12.6
1.创建用户
useradd postgres
passwd postgres
安装依赖包(配置本地yum源)
yum groupinstall -y "Development Tools" "Legacy UNIX Compatibility"
yum install -y bison flex readline* zlib-devel gcc* gmake
创建数据库安装目录并授权
mkdir -p /usr/local/pg12
mkdir -p /pgdata/12/data
chown -R postgres. /pgdata
chown -R postgres. /usr/local/pg12
chmod 700 /pgdata/12/data -R
mkdir -p /postgresql/bin ------base路径
mkdir -p /postgresql/pgsql_data ------data路径
chown -R postgres. /postgresql
chown -R postgres. /postgresql/bin
chmod 700 /postgresql/pgsql_data -R
修改系统参数
vi /etc/sysctl.conf
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 50100 64128000 50100 1280
fs.file-max = 7672460
net.core.rmem_default = 1048576
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
system -p
vi /etc/security/limits.conf
soft nofile 131072
hard nofile 131072
soft nproc 131072
hard nproc 131072
soft stack unlimited
hard stack unlimited
hard memlock 50000000
soft memlock 50000000
源码安装
1.上传安装包并解压
tar -xf postgresql-12.6.tar.gz
2.源码安装pg
cd postgresql-12.6
./configure --prefix=/usr/local/pg12 --with-pgport=1921
3.可用功能编译
gmake world
4.把所有编译好的进行安装
gmake install -world
5.设置环境变量
cd ~/.bash_profile
vi .bash_profile
export PGDATA=/pgdata/12/data
export LANG=en_US.utf8
export PGHOME=usr/local/pg12
export
export PGUSER=postgres
export PATH=$PGHOME/bin:$PATH
生效
source ~/.bash_profile
进入脚本路径
cd /usr/local/pg12/bin
./psql --version
6.初始化数据库
cd /usr/postgresql-12.6/src/bin/initdb
initdb -A md5 -D $PGDATA -E utf8 --locale=C -W
-A 加密方式 -D 路径 -E 字符集 --local=C
进入二进制文件路径启动数据库(两种启动方式,任意选一个)
pg_ctl -D /postgresql/pgsql_data -l logfile start
pg_ctl start
进入到数据库
Psql
测试
create database test;
\c test
create table test1 (id int);
将pg数据库为开机自启动
使用pg源码自带的启动脚本来实现自启动功能
在源码包的/contrib/start-scripts/ 中的Linux脚本
进入到postgre自带linux路径
复制文件+赋权
cp linux /etc/init.d/postgresql
chmod a+x /etc/init.d/postgresql
修改复制后的postgresql文件
vi /etc/init.d/postgresql
prefix=/usr/local/pg12/ ------启动二进制文件所在路径
测试使用服务启动数据库
关闭
service postgresql stop
启动
service postgresql start
设置开机自启动
chkconfig --add postgresql
chkconfig --list postgresql
重启服务器测试
reboot(生产环境请注意)
su - postgres
ps -ef |grep postgres
配置远程连接
PS:刚装完的PG,默认只监听local,如果要远程连接,需要监听对外提供服务的地址。
vim postgresql.conf -主配置文件-初始化配置文件oracle
listen_addresses= '0.0.0.0' #what IP address(es) to listen on;
listen_addresses = '0,0,0,0' #what IP address(es) to listen on;
vi pg_hba.conf
修改上面两个文件后重启数据库
pg_ctl restart -mf
PG启动关闭
-m, --mode=MODE MODE can be "smart", "fast", or "immediate"
smart
最安全最干净的关闭方法,等事务全部完成。
fast
应用最多,快速关闭,回滚事务(生产常见)
Immediate
立即关闭
手工启动关闭
pg_ctl -D /pgdata/12/data/ -l logfile start
pg_ctl -D /pgdata/12/data/ stop -ms
pg_ctl -D /pgdata/12/data/ stop -mf
pg_ctl -D /pgdata/12/data/ stop -mi
pg_ctl stop -mf (标准的关闭方式)