+-
                                
                                    
                                
                                
                                    
                                
                                
                                    
                                         
                                        
                                        
                                        
                                        
                                            
                                        
                                        
                                    
                                
                            
                        
CentOS 8 源码编译安装PostgreSQL(13.1)
注意:以下所有命令无特殊说明均在root下执行
一、安装前准备
1、操作系统需安装开发工具相关程序,如GCC,Make等,本例采用组安装包的方式进行安装: "Development Tools" 或 "开发工具"
dnf -y groupinstall "Development Tools"2、在默认情况下一般要使用数据库中的压缩功能,而这一功能的实现需要第三方的zlib压缩开发包支持,所以需要安装 zlib-devel 包;为了方便地在psql中使用上下方向键把历史命令找出来,按照PostgreSQL官方手册的说明,需要安装readline-devel包。
dnf -y install zlib-devel readline-devel perl-devel perl-ExtUtils-Embed python3-devel二、下载源码
wget https://ftp.postgresql.org/pub/source/v13.1/postgresql-13.1.tar.bz2三、编译及安装
1、解压源码
tar -jxvf postgresql-13.1.tar.bz22、进入源码目录
cd postgresql-13.13、创建PostgreSQL安装目录
mkdir -p /vdisk/app/postgresql/pgsql/v13.14、运行configure
./configure --prefix=/vdisk/app/postgresql/pgsql/v13.1 --with-perl --with-python参数说明:
(1)--prefix 指定数据库程序安装位置。
(2)--with-perl 加上该选项才能使用Perl语法的PL/Perl过程语言来编写自定义函数。
(3)--with-python 加上该选项才能使用Python语法的PL/Python过程语言来编写自定义函数。
5、编译
make6、安装
make install7、安装常用工具
cd contrib
make
make install7、为方便后续数据库管理程序版本升级,建立默认数据库管理程序链接,以后有新的版本发布,通过源码编译安装后,修改这个软链接的实际指向即可完成升级,其他配置不需要做修改。
ln -sf /vdisk/app/postgresql/pgsql/v13.1 /vdisk/app/postgresql/pgsql/default 四、添加用户(postgres)
# 1 添加用户
useradd postgres
# 2 设置密码
passwd postgres
# 3 创建相关目录
mkdir -p /vdisk/app/postgresql/pgdata
# 4 更改目录宿主
chown -R postgres:postgres /vdisk/app/postgresql/pgdata五、配置环境变量
# 1 切换至 postgres 用户
su - postgres
# 2 配置 .bashrc 在末尾添加如下内容
export PGBASE=/vdisk/app/postgresql
export PGHOME=$PGBASE/pgsql/default
export PGDATA=$PGBASE/pgdata
export PATH=$PGHOME/bin:$PATH
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
export MANPATH=$PGHOME/share/man:$MANPATH
# 3 让配置生效
source ~/.bashrc六、初始化数据库实例
# 切换至 postgres 用户
initdb七、数据库实例的启动及停止
# 切换至 postgres 用户
# 1 启动数据库
pg_ctl start 
# 2 停止数据库
pg_ctl stop [-m SHUTDOWN-MODE]
# -m 用于指定数据库的停止方法,有以下3种模式:
# smart : 等所有连接中止后,关闭数据库。如果客户端连接不终止,则无法关闭数据库。
# fast : 快速关闭数据库,断开客户端的连接,记已有的事务回滚,然后正常关闭数据库。
# immediate : 立即关闭数据库,相当于数据库进程立即停止,直接退出,下次启动数据库需要进行恢复。八、测试
# 切换至 postgres 用户
# 1 使用 psql 命令行工具连接数据库
psql
# 输出如下:
psql (13.1)
Type "help" for help.
postgres=#
# 2 查看数据库信息,命令行输入 \l 回车
postgres=# \l
# 输出如下:
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 |
 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(3 rows)
postgres=# 
                