生产环境中使用postgres做为数据库,使用rpm安装的postgresql软件,软件为:12.4
这种情况下怎么安装pg-stat-statements 插件呢。
pg-stat-statmentes
生产环境中使用postgres做为数据库,使用rpm安装的postgresql软件,软件为:12.4
这种情况下怎么安装pg-stat-statements 插件呢。
pg-stat-statmentes 是pg-12.4中源码中contrib 下已经集成的插件,要想使用rpm 安装的postgresq上安装 pg-stat-statements 需要满足一下几个条件
一,需安装同版本的 postgesql-devel 开发包,我系统下为:postgresql12-devel-12.4
1,插件postgres的版本信息:
登录pg后,select version(),还有一种方法是:how server_version;
2,安装postgresql12-devel-12.4-1PGDG.rhel7.x86_64 遇到错误,错误提示如下:
Requires: llvm-toolset-7-clang >= 4.0.1
问题解决
安装centos-release-scl-rh包即可
二,下载同版本的源代码,这里到官方网站下载postgresl-12.4的源码包。
1,加压后,到contrib 目录下的pg-stat-statements 目录下,执行:
make 后报错如下:

postgresql 安装插件时提示找不到~global.mk
当postgresql 安装插件时,遇到了/contrib/contrib-global.mk:
打开MakeFile
ifdef USE_PGXS
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
else
subdir = contrib/pg_freespacemap
top_builddir = ../..
include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif
看到第一行有个判断,判断是否定义了USE_PGXS参数
PGXS参数可以见pg官网。
所以,可以在make 的时候加上USE_PGXS就可以了
make USE_PGXS=1
make USE_PGXS=1 install
有可能会出现这个问题:
make: pg_config: Command not found
出现这个原因是你没有把相应的bin目录加到环境变量中
pg_config 这个命令是 ,provides information about the installed version of PostgreSQL(提供postgresql 安装信息)
export PATH=$PATH:/usr/pgsql-12/bin/
我这里 为rpm装,默认路经为:/usr/pgsql-12/bin
bin 为你的pg_config所在目录
安装完成后,进入psql 然后执行 create extension pg_stat_statments; 创建扩展插件。