centos7 下安装PostgreSQL 及timescaledb 的过程


centos7 下安装PostgreSQL 及timescaledb 的过程

文章插图
 
前期准备先删除现有的PostgreSQL 比如13
使用 sudo yum remove postgresql13-server postgresql13-contrib 该命令将会删除安装包及其依赖项 。
卸载完成后 , 为了确保 PostgreSQL 相关的文件和目录也被清理干净,
使用 sudo rm -rf /var/lib/pgsql/13 命令来删除 PostgreSQL 数据目录 。
这个目录通常是用于存储数据库文件的 。
安装timescaledb1:找到rpm
https://packagecloud.io/timescale/timescaledb/packages/el/7/timescaledb-2-postgresql-15-2.11.2-0.el7.x86_64.rpm?distro_version_id=140
2:下载源配置
【centos7 下安装PostgreSQL 及timescaledb 的过程】curl -s https://packagecloud.io/install/repositories/timescale/timescaledb/script.rpm.sh | sudo bash
说明:curl -s https://packagecloud.io/install/repositories/timescale/timescaledb/script.rpm.sh | sudo bash 是一个命令 , 它有以下含义:curl:这是一个命令行工具,用于从网络上获取文件或页面的内容 。-s:表示静默模式,即不显示进度或错误信息 。https://packagecloud.io/install/repositories/timescale/timescaledb/script.rpm.sh 是一个 URL 链接,指向一个脚本文件 。|:这个管道符号将 curl 命令的输出(脚本文件的内容)传递给下一个命令 。sudo bash:这是另一个命令 , 用于以超级用户权限执行命令 。在这种情况下,所执行的命令是 bash 。该命令的目的是下载一个脚本文件并以超级用户权限运行该脚本 。脚本位于 https://packagecloud.io/install/repositories/timescale/timescaledb/script.rpm.sh 的地址上 。该脚本可能用于添加 TimescaleDB 数据库的软件源到您的系统中 。通过运行该命令,您可以自动配置 TimescaleDB 软件包的安装和更新 。2:安装
sudo yum install timescaledb-2-postgresql-15-2.11.2-0.el7.x86_64
3:启动postgresql-15
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
4:运行出现错误,可能有以下几种情况:
  • 软件包未正确安装,使用以下命令检查是否安装:
rpm -qi postgresql15-server
  • 系统认识不到服务:执行以下命令以刷新系统服务列表,并重试启用 PostgreSQL 15 服务:
sudo systemctl daemon-reload
sudo systemctl start postgresql-15
  • 查看详细的错误信息:
sudo systemctl status postgresql-15.service
  • 检查日志文件:
journalctl -xe
在输出中搜索与 PostgreSQL 15 服务相关的任何错误消息并进行分析 。
添加 timescaledb 插件1:添加timescaledb 过程中可能出现 $PATH错误
exit: could not execute pg_config --version: exec: "pg_config": executable file not found in $PATH
pg_config 是 PostgreSQL 的一个可执行文件,用于获取有关 PostgreSQL 安装的信息 。如果已经安装了 PostgreSQL,那么很可能 pg_config 在系统上是可用的,只是没有包含在 $PATH 环境变量中 。使用 find 命令查找 pg_config的路径
find / -name 'pg_config' 2>/dev/null
找到后通过vi编辑shell 配置文件,将 pg_config 所在的目录添加到 $PATH 中 。
  • 打开
vi ~/.bashrc
  • 如果 pg_config 的完整路径是 /usr/local/pgsql/bin/pg_config
export PATH=$PATH:/usr/local/pgsql/bin
  • 保存文件后 , 运行 source 命令或重新启动终端以使更改生效 。
source ~/.bashrc
  • 验证是否成功将 pg_config 添加到 $PATH:
pg_config --version
如果一切正常,将显示 pg_config 的版本信息
2:添加timescaledb 过程中可能出现extension "timescaledb" must be preloaded
这个错误表明在使用 TimescaleDB 扩展之前,需要在 PostgreSQL 的配置文件中预加载 timescaledb 库 。修改 PostgreSQL 的配置文件 postgresql.conf 并添加 timescaledb 到 shared_preload_libraries 的列表中:
  • vi打开 /var/lib/pgsql/15/data/postgresql.conf 文件 。
在配置文件中找到名为 shared_preload_libraries 的设置行 。
将其值修改为 'timescaledb' 。确保在多个库名称之间使用逗号进行分隔,不要删除已经存在的其他库 。例如 , 修改后的设置行可能如下所示:
shared_preload_libraries = 'timescaledb, other_library'
保存更改,并关闭文件编辑器 。