CentOS 8 源码编译安装PostgreSQL(13.1)

CentOS 8 源码编译安装PostgreSQL(13.1)

注意:如下全部命令无特殊说明均在root下执行python

1、安装前准备

一、操做系统需安装开发工具相关程序,如GCC,Make等,本例采用组安装包的方式进行安装: "Development Tools" 或 "开发工具"sql

dnf -y groupinstall "Development Tools"

二、在默认状况下通常要使用数据库中的压缩功能,而这一功能的实现须要第三方的zlib压缩开发包支持,因此须要安装 zlib-devel 包;为了方便地在psql中使用上下方向键把历史命令找出来,按照PostgreSQL官方手册的说明,须要安装readline-devel包。数据库

dnf -y install zlib-devel readline-devel perl-devel perl-ExtUtils-Embed python3-devel

2、下载源码

wget https://ftp.postgresql.org/pub/source/v13.1/postgresql-13.1.tar.bz2

3、编译及安装

一、解压源码bash

tar -jxvf postgresql-13.1.tar.bz2

二、进入源码目录app

cd postgresql-13.1

三、建立PostgreSQL安装目录函数

mkdir -p /vdisk/app/postgresql/pgsql/v13.1

四、运行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过程语言来编写自定义函数。
五、编译post

make

六、安装开发工具

make install

七、安装经常使用工具测试

cd contrib
make
make install

七、为方便后续数据库管理程序版本升级,创建默认数据库管理程序连接,之后有新的版本发布,经过源码编译安装后,修改这个软连接的实际指向便可完成升级,其余配置不须要作修改。

ln -sf /vdisk/app/postgresql/pgsql/v13.1 /vdisk/app/postgresql/pgsql/default

4、添加用户(postgres)

# 1 添加用户
useradd postgres
# 2 设置密码
passwd postgres
# 3 建立相关目录
mkdir -p /vdisk/app/postgresql/pgdata
# 4 更改目录宿主
chown -R postgres:postgres /vdisk/app/postgresql/pgdata

5、配置环境变量

# 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

6、初始化数据库实例

# 切换至 postgres 用户
initdb

7、数据库实例的启动及中止

# 切换至 postgres 用户
# 1 启动数据库
pg_ctl start 
# 2 中止数据库
pg_ctl stop [-m SHUTDOWN-MODE]
# -m 用于指定数据库的中止方法,有如下3种模式:
# smart : 等全部链接停止后,关闭数据库。若是客户端链接不终止,则没法关闭数据库。
# fast : 快速关闭数据库,断开客户端的链接,记已有的事务回滚,而后正常关闭数据库。
# immediate : 当即关闭数据库,至关于数据库进程当即中止,直接退出,下次启动数据库须要进行恢复。

8、测试

# 切换至 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=#
相关文章
相关标签/搜索