Ubuntu编译Rust pgx包timescaledb-toolkit后如何迁移至CentOS7并安装到PostgreSQL
TimescaleDB Toolkit 跨系统迁移安装指南
前置校验
- 确认编译产物与CentOS7兼容:CentOS7默认glibc版本为2.17,Ubuntu新版本默认编译的二进制依赖更高版本glibc,若后续运行出现
GLIBC_xxx not found报错,需要重新在Ubuntu上使用cargo build --release --target x86_64-unknown-linux-musl做静态编译,或直接在centos:7容器环境中编译避免兼容问题 - 确认CentOS7上安装的PostgreSQL主版本,与Ubuntu编译时依赖的PostgreSQL主版本完全一致,否则会出现扩展加载失败问题
安装步骤
- 提取所需安装文件
从你编译好的产物中仅需要提取两类文件:
- 从
target/release目录下提取后缀为.so的TimescaleDB Toolkit扩展动态库文件 - 从
crates/timescaledb-toolkit/目录下提取后缀为.control的扩展控制文件,以及所有后缀为.sql的扩展功能脚本
- 上传文件到CentOS7指定目录
先在CentOS7上执行以下命令获取PostgreSQL的对应目录:
# 获取共享文件目录 pg_config --sharedir # 获取动态库目录 pg_config --pkglibdir
上传规则:
- 所有
.control和.sql文件上传到共享目录下的extension子目录,默认路径通常为/usr/pgsql-<你的PG版本号>/share/extension/ .so动态库文件上传到动态库目录,默认路径通常为/usr/pgsql-<你的PG版本号>/lib/
- 配置文件权限
上传完成后执行以下命令设置正确权限:
# 替换路径为你实际的文件路径 chmod 755 /usr/pgsql-<你的PG版本号>/lib/timescaledb_toolkit-*.so chmod 644 /usr/pgsql-<你的PG版本号>/share/extension/timescaledb_toolkit-*.{control,sql} chown postgres:postgres /usr/pgsql-<你的PG版本号>/lib/timescaledb_toolkit-*.so /usr/pgsql-<你的PG版本号>/share/extension/timescaledb_toolkit-*.{control,sql}
- PostgreSQL内安装验证
切换为postgres用户进入psql命令行,执行以下命令完成安装与校验:
-- 安装扩展 CREATE EXTENSION timescaledb_toolkit; -- 验证安装结果 SELECT extname, extversion FROM pg_extension WHERE extname = 'timescaledb_toolkit';
内容的提问来源于stack exchange,提问作者kinkajou
相关产品推荐
相关产品推荐

