注意:如下全部命令无特殊说明均在root下执行python
一、操做系统需安装开发工具相关程序,如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
wget https://ftp.postgresql.org/pub/source/v13.1/postgresql-13.1.tar.bz2
一、解压源码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
# 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=#