PostgreSQL源码安装及配置(基于Pg13)
Posted PostgreSQLChina
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL源码安装及配置(基于Pg13)相关的知识,希望对你有一定的参考价值。
作者:李明
毫无疑问,在使用PostgreSQL之前,首先要安装它。
本文介绍以源码方式在RHEL7.3下的PostgreSQL13.4安装。
步骤概览
./configure
make
make install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/pgsql test
详细步骤
要求
一般的Linux操作系统环境,足以运行PostgreSQL。
安装PostgreSQL,需要以下软件包:
- GUN make 3.80及以上版本(不可使用其他make或旧的GUN make)。查看GUN make版本:make --version
- C编译器。GCC即可。
- tar及gzip或bzip2:用以解压源码;
- 默认使用GUN Readline库:该库允许psql(PostgreSQL的)记录SQL命令,并可以使用上下键选择及编辑之前使用的命令。建议使用该软件,但如果不想使用,可以在configure的时候,指定–without-readline;
- 默认使用zlib压缩库。如果不想使用,则可以在configure的时候,指定–without-zlib(使用该选项会禁用在使用pg_dump和pg_restore时的归档压缩);
以下为可选安装包。默认安装PostgreSQL用不到这些包,但是在需要特定功能的时候,就需要安装这些软件包:
- 若需使用PL/Perl进行数据库存过程等编程,则需要安装Perl(含libperl库及其头文件),版本最低为Perl3.8.5;查看Perl版本:perl -V;
- 若需使用PL/Python进行数据库存过程等编程,则需要安装Python(含头文件及distutils模块)。版本最低为2.6;
- 若需使用PL/Tcl进行数据库存过程等编程,则需要安装Tcl。版本最低为8.4;
- 如果要启用本地语言支持(NLS:Native Language Support),需要gettext;
- 如果需要加密客户端连接,则需要OpenSSL。版本最低为OpenSSL 1.0.1;
磁盘空间需求:当前环境,普普通通足以满足空间需求。
获取源码
从官网获取:https://www.postgresql.org/ftp/source/v13.4/
有两个类型的文件:postgresql-13.4.tar.bz2和postgresql-13.4.tar.gz
解压文件:
tar -xvf postgresql-13.4.tar.gz或者tar -jxvf postgresql-13.4.tar.bz2
解压完成后,生成:
postgresql-13.4 #源码路径
安装
依赖包安装
配置yum源,然后安装相关依赖包:
yum install -y gcc xml2 readlinedev* zlib perldev* pythondev* bison flexs
configuration配置
如果只进行默认配置,可直接在源码解压路径下(postgresql-13.4)运行命令:./configure
默认配置会安装仅使用C编译器的服务端和其他程序、客户端接口等。
默认会安装到/usr/local/pgsql路径下。#数据库软件安装路径
如果需要重新进行configure,则建议首先执行以下: make distclean #该命令重置源码树至初始状态
常用./configure选项:
–prefix=PREFIX
将所有文件放置到PREFIX指定的路径下(而非默认的/usr/local/pgsql)。
–enable-nls[=LANGUAGES]
启用本地语言支持(NLS)。若不指定LANGUAGE,则会安装所有可用的语言。
需要Gettext API。
–with-perl
创建PL/Perl服务端语言。
–with-python
创建PL/Python服务端语言。
–with-openssl
支持SSL(加密)连接。需要安装OpenSSL。
–with-pgport=NUMBER
为客户端及服务端设置默认端口号。默认为5432。
也可以在此阶段设置块大小、WAL块大小及段大小。
build构建
开始build
make
如果想同时安装文档以及其他的模块,则使用make world
安装PostgreSQL
make install
将相关数据库文件安装到./configure中指定的路径下,默认为/usr/local/pgsql。
该安装会同时安装客户端和服务端相关程序。
如果想同时安装文档以及其他的模块,则使用make install-world
仅安装客户端程序及接口库
make -C src/bin install
make -C src/include install
make -C src/interfaces install
make -C doc install
卸载PostgreSQL
make uninstall
如果需要重新进行configure,则建议首先执行以下: make distclean #该命令重置源码树至初始状态
数据库服务配置
创建数据库的操作系统用户
useradd postgres --用户名可自定义
passwd postgres
创建数据库群集
创建自定义数据库路径:
mkdir /postgres
chown postgres /postgres
切换到postgres用户下,创建数据目录:
su - postgres
mkdir /postgres/data
初始化数据库:
/usr/local/pgsql/bin/initdb -D /postgres/data #可以设置PGDATA环境变量,替代-D选项或pg_ctl -D /postgres/data initdb
此命令默认创建一个没有密码的数据库超级用户postgres(与执行该命令的操作系统用户名相同)。若需为该默认数据库超级用户指定密码,则可在initdb时指定W选项。
启动数据库:
/usr/local/pgsql/bin/postgres -D /postgres/data >logfile 2>&1 &或/usr/local/pgsql/bin/pg_ctl start -D /postgres/data -l logfile
安装完成后的配置
环境变量配置
在数据库安装用户postgres下,配置数据目录(-D选项)以及可执行文件路径、共享库路径:vi ~/.bash_profile
添加:
export PGDATA=/postgres/data
export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib
使配置生效:source ~/.bash_profile
数据库服务开机自启动配置
vi /etc/rc.d/rc.local添加:su - postgres -c 'pg_ctl start -D /postgres/data -l logfile’为该文件添加执行权限chmod +x /etc/rc.d/rc.local
客户端连接配置
数据库服务启动后,默认异机客户端无法连接,需对配置文件postgresql.conf和pg_hba.conf文件进行配置:vi $PGDATA/postgresql.conf
将其中的参数:#listen_addresses = ‘localhost’ 改为 listen_addresses = ‘*’ #需重启数据库服务
vi $PGDATA/pg_hba.conf将其中的IP限制修改为host all all 0.0.0.0/0 trust #需执行pg_ctl reload
#可以指定某一IP或某一网段IP;认证方式可以为trust、reject、md5、password、scram-sha-256、gss、sspi、dent’、peer、pam、ldap、radius、cert
关闭数据库服务
关闭数据库服务有三种模式:
- SIGTERM,smart shutdown:阻止新连接,保持现有连接,仅当所有会话退出后才会关闭;
- SIGINT,fast shutdown:阻止新连接,中断事务,断掉会话;
- SIGQUIT,immediate shutdown:断电;
可使用命令pg_ctl stop -m smart|fast|immediate关闭数据库服务。
以上是关于PostgreSQL源码安装及配置(基于Pg13)的主要内容,如果未能解决你的问题,请参考以下文章
CentOS 7 安装&配置PostgreSQL 12(附图片详解)