PostgreSQL升级后pg_repack v1.4.8安装运行及版本不匹配问题求助
解决pg_repack版本不匹配错误:程序与数据库库版本不一致
问题核心
你遇到的报错是因为系统中安装的**pg_repack客户端工具版本(1.4.5)和数据库内已升级的pg_repack扩展库版本(1.4.8)**不匹配,pg_repack要求客户端与数据库扩展的版本必须完全一致才能正常运行。
具体解决步骤
确认当前客户端版本
执行命令检查系统里的pg_repack版本:pg_repack --version若输出为1.4.5,说明客户端未升级成功。
彻底卸载旧版本pg_repack
- 包管理器安装的版本:
- Debian/Ubuntu:
sudo apt remove --purge pg-repack - RHEL/CentOS:
sudo yum remove pg_repack
- Debian/Ubuntu:
- 源码编译安装的版本:
进入当初编译的pg_repack源码目录,执行:sudo make uninstall
- 包管理器安装的版本:
安装适配PG15.2的pg_repack 1.4.8
- 包管理器安装(推荐):
确保PostgreSQL官方源已配置,安装对应PG15的pg_repack包:# Debian/Ubuntu sudo apt install pg-repack-15 # RHEL/CentOS sudo yum install pg_repack15 - 源码编译安装:
下载1.4.8源码并指定PG15的pg_config路径编译:wget https://github.com/reorg/pg_repack/archive/refs/tags/1.4.8.tar.gz tar zxf 1.4.8.tar.gz cd pg_repack-1.4.8 ./configure --with-pgconfig=/usr/pgsql-15/bin/pg_config make sudo make install
- 包管理器安装(推荐):
验证版本一致性
- 客户端版本:再次执行
pg_repack --version,确认输出为1.4.8 - 数据库扩展版本:进入PostgreSQL执行查询:
确认SELECT extname, extversion FROM pg_extension WHERE extname='pg_repack';extversion为1.4.8
- 客户端版本:再次执行
重新测试pg_repack
运行你的pg_repack命令验证,例如:pg_repack -d 你的数据库名 -t 目标表名
注意事项
- PostgreSQL主版本升级后,所有扩展都需要重新安装对应主版本的适配包,扩展与PG主版本强绑定,不能跨版本混用旧工具。
- 源码编译时必须指定目标PG版本的
pg_config路径,否则会编译出适配旧PG版本的工具,导致版本不匹配。
内容的提问来源于stack exchange,提问作者Akshay Bhadange
相关产品推荐
相关产品推荐

