源码编译安装PostgresSQL(11.5)

原文链接:https://www.modb.pro/db/22220?cyn (阅读原文,支持作者)

摘要:源码编译安装pg11.5(Centos7.4+PG11.5)。

一、环境准备

1、安装依赖包

yum -y install gcc*
yum -y install python python-devel
yum -y install perl-ExtUtils-Embed
yum -y install zlib-devel
yum -y install readline*

2、创建用户组、目录

groupadd -g 1001 postgres #新增用户组
useradd -g 1001 -u 1001 postgres #新增用户
[root@pg11 ~]# id postgres
uid=1001(postgres) gid=1001(postgres) groups=1001(postgres)
passwd postgres #为用户设置密码

3、创建目录

mkdir -p /usr/local/pgsql11.5
chown -R postgres:postgres /usr/local/pgsql11.5/

mkdir -p /home/osdata/pgdata
chown -R postgres:postgres /home/osdata/
chmod 0700 /home/osdata/pgdata

4、修改环境变量(postgres用户)

export PATH=/usr/local/pgsql11.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql11.5/lib
export PGDATA=/home/osdata/pgdata

5、上传软件包,并且解压缩(root)

[root@pg11 pgsql11.5]# ll
total 19312
-rw-r–r--. 1 root root 19773087 Oct 30 20:05 postgresql-11.5.tar.bz2
[root@pg11 pgsql11.5]#chown -R postgres:postgres /usr/local/pgsql11.5/
[root@pg11 pgsql11.5]# ll
total 19312
-rw-r–r--. 1 postgres postgres 19773087 Oct 30 20:05 postgresql-11.5.tar.bz2

tar -xvf postgresql-11.5.tar.bz2

6、生成链接

ln -sf /usr/local/pgsql11.5 /usr/local/pgsql

二、安装postgresql

1、编译

cd postgresql-11.5/
./configure --prefix=/usr/local/pgsql11.5 --with-perl --with-python

2、安装

一次性把文档及附加模块全部进行编译和安装
gmake world
出现“PostgreSQL, contrib, and documentation successfully made. Ready to install.”说明编译成功

gmake install-world
出现“PostgreSQL, contrib, and documentation installation complete.”说明安装成功

查看版本
[postgres@pg11 postgresql-11.5]$ postgres --version
postgres (PostgreSQL) 11.5

3、初始化数据库

initdb -D /home/osdata/pgdata/ -W

4、启动数据库

pg_ctl -D $PGDATA -l logfile start

5、查看实例进程

[postgres@pg ~]$ ps -ef|grep postgres
postgres 56625 1 0 Mar04 ? 00:00:03 /usr/local/pgsql11.5/bin/postgres -D /home/osdata/pgdata
postgres 56627 56625 0 Mar04 ? 00:00:00 postgres: checkpointer
postgres 56628 56625 0 Mar04 ? 00:00:01 postgres: background writer
postgres 56629 56625 0 Mar04 ? 00:00:01 postgres: walwriter
postgres 56630 56625 0 Mar04 ? 00:00:05 postgres: autovacuum launcher
postgres 56631 56625 0 Mar04 ? 00:00:10 postgres: stats collector
postgres 56632 56625 0 Mar04 ? 00:00:00 postgres: logical replication launcher
root 76758 76699 0 11:01 pts/0 00:00:00 su - postgres
postgres 76759 76758 0 11:01 pts/0 00:00:00 -bash
postgres 76797 76759 0 11:01 pts/0 00:00:00 psql
postgres 76801 56625 0 11:01 ? 00:00:00 postgres: postgres test [local] idle
root 77192 77145 0 11:21 pts/1 00:00:00 su - postgres
postgres 77193 77192 0 11:21 pts/1 00:00:00 -bash
postgres 79582 77193 0 13:45 pts/1 00:00:00 ps -ef
postgres 79583 77193 0 13:45 pts/1 00:00:00 grep --color=auto postgres

查看数据库状态
[postgres@pg11 ~]$ pg_ctl -D /home/osdata/pgdata/ status
pg_ctl: server is running (PID: 23588)
/usr/local/pgsql11.5/bin/postgres “-D” “/home/osdata/pgdata”

6、设置开机自启动

1、配置脚本服务
在源码包的contrib目录中有linux、freebsd、macos适用的服务脚本
[root@pg11 ~]# cd /usr/local/pgsql/postgresql-11.5/contrib/start-scripts
[root@pg11 start-scripts]# ll
total 8
-rw-r–r--. 1 postgres postgres 1467 Aug 6 2019 freebsd
-rw-r–r--. 1 postgres postgres 3552 Aug 6 2019 linux
drwxrwxr-x. 2 postgres postgres 84 Aug 6 2019 macos
把名为linux的脚本拷贝到/etc/init.d目录,并且重命名为postgresql11
[root@pg11 ~]# cp /usr/local/pgsql/postgresql-11.5/contrib/start-scripts/linux /etc/init.d/postgresql11
[root@pg11 init.d]# chmod +x postgresql-11
[root@pg11 init.d]# chkconfig postgresql-11 on
[root@pg11 init.d]# chkconfig --list |grep postgresql-11
postgresql-11 0:off 1:off 2:on 3:on 4:on 5:on 6:off

7、登录数据库

[postgres@pg ~]$ psql
psql (11.5)
Type “help” for help.

postgres=#

更多PG相关入门分享、进阶练习:https://www.modb.pro/tag/postgresql?cyn

原文地址:https://www.cnblogs.com/hzcya1995/p/13311748.html