环境:
OS version: Centos6.10
PostgreSQL version: 14.2
timescaledb version: 2.5.2
gcc version: 4.8.5
cmake version: 3.11.4
依赖关系:pg14对应版本timescaledb2.5,timescaledb2.5需要cmake3.11以上,cmake3.11需要gcc4.8以上(centos6自带gcc4.7)
1.安装gcc(cmake需要)
按照依赖关系需要先升级gcc,这里没有直接升级,而是4.7和4.8共存,保持系统默认gcc版本不变。原因是之前升级导致系统出现问题,所以此次安装秉持尽量不影响系统原有环境的原则。
1.1.下载
gcc4.8.5下载地址:https://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2
复制链接到浏览器可以直接下载
以下操作均在root下执行
centos联网环境下:
wget https://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2
1.2.解压
tar -jxvf gcc-4.8.5.tar.bz2
1.3.编译安装
# 创建gcc的安装目录
mkdir /usr/local/gcc
# 切至解压目录
cd gcc-4.8.5
# 安装MPFR、GMP、MPC依赖
# 联网环境下可以直接./download_prerequisites执行
# 如果报错连接超时或环境无法访问ftp,可以打开脚本,将以'wget ftp'开头的三行内容中的ftp改为http,然后保存,./download_prerequisites执行
./contrib/download_prerequisites
# 离线环境下复制以下三个链接到浏览器下载,如果是其他版本的gcc,则以download_prerequisites脚本内为准
# http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
# http://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
# http://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
# 下载后上传至gcc-4.8.5目录并解压,创建软连接
tar -jxvf mpfr-2.4.2.tar.bz2
tar -jxvf gmp-4.3.2.tar.bz2
tar -zxvf mpc-0.8.1.tar.gz
ln -sf mpfr-2.4.2 mpfr
ln -sf gmp-4.3.2 gmp
ln -sf mpc-0.8.1 mpc
# 编译,--prefix指定安装目录
./congfigure --prefix=/usr/local/gcc
# 安装
make -j 4 && make install
# 替换原gcc的库文件,解决root环境下glibcxx正常,其他用户提示glibcxx not found问题
cp /usr/local/gcc/lib64/libstdc++.so.6.0.19 /usr/lib64/ # 复制gcc4.8.5的库文件至系统库目录
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.old # 备份原gcc库文件ibstdc++.so.6
ln -s /usr/local/gcc/lib64/libstdc++.so.6.0.19 libstdc++.so.6 # 软链接新gcc库文件
2.安装cmake
2.1.下载
cmake下载地址:https://cmake.org/files/v3.11/cmake-3.11.4.tar.gz
2.2.解压
tar -zxvf cmake-3.11.4.tar.gz
2.3.编译安装
# 创建安装目录
mkdir /usr/local/cmake
# 切至解压目录
cd cmake-3.11.4
# 编译,CC和CXX指定编译环境为新安装的gcc、g++
CC=/usr/local/gcc/bin/gcc CXX=/usr/local/gcc/bin/g++ ./configure --prefix=/usr/local/cmake/
# 安装
make -j 4 && make install
# 设置环境变量
vi /etc/profile
export PATH=$PATH:/usr/local/cmake/bin
# 查看cmake版本
cmake --version
3.安装timescaledb
3.1.下载
git clone https://github.com/timescale/timescaledb.git
3.2.编译安装
# 切至目录
cd timescaledb
# 将pg的bin目录加到root环境变量
vi ~/.bash_profile
export PATH=$PATH:/usr/local/pgsql-14.2/bin/
# 重载环境变量
source ~/.bash_profile
# 编译
CC=/usr/local/gcc/bin/gcc CXX=/usr/local/gcc/bin/g++ ./bootstrap
# 安裝
cd build && make -j 4 && make install
以下操作在postgres用户下进行
4.修改数据库配置文件
# 查看配置文件路径
psql -d postgres -c "SHOW config_file;"
# 添加timescaledb配置
vi /postgresql/pgdata-14.2/postgresql.conf
shared_preload_libraries = 'timescaledb'
# 重启数据库
pg_ctl restart
5.创建插件
# 创建测试数据库
CREATE database example;
-- 切换数据库
\c example
-- 创建插件
CREATE EXTENSION IF NOT EXISTS timescaledb;
-- 查看插件
\dx