您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux百科

centos7 下安装PostgreSQL 及timescaledb 的过程

时间:2023-09-26 15:48:05  来源:今日头条  作者:百里追梦
centos7 下安装PostgreSQL 及timescaledb 的过程

 

前期准备

先删除现有的PostgreSQL 比如13

使用 sudo yum remove postgresql13-server postgresql13-contrib 该命令将会删除安装包及其依赖项。

卸载完成后,为了确保 PostgreSQL 相关的文件和目录也被清理干净,

使用 sudo rm -rf /var/lib/pgsql/13 命令来删除 PostgreSQL 数据目录。

这个目录通常是用于存储数据库文件的。

安装timescaledb

1:找到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:下载源配置

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'

保存更改,并关闭文件编辑器。

  • 重新启动 PostgreSQL 服务,以使更改生效。

sudo systemctl restart postgresql-15

3:进入 PostgreSQL 控制台添加timescaledb

sudo -u postgres psql

在 PostgreSQL 控制台中运行以下命令安装 TimescaleDB 扩展:

postgres=# CREATE database tutorial;
postgres=# c tutorial
tutorial=# CREATE EXTENSION IF NOT EXISTS timescaledb;
警告:
WELCOME TO
_____ _ _ ____________
|_ _(_) | | | _  ___ 
| | _ _ __ ___ ___ ___ ___ __ _| | ___| | | | |_/ /
| | | | _ ` _  / _ / __|/ __/ _` | |/ _  | | | ___ 
| | | | | | | | | __/__  (_| (_| | | __/ |/ /| |_/ /
|_| |_|_| |_| |_|___||___/_____,_|_|___|___/ ____/
Running version 2.11.2
For more information on TimescaleDB, please visit the following links:
1. Getting started: https://docs.timescale.com/timescaledb/latest/getting-started
2. API reference documentation: https://docs.timescale.com/api/latest
3. How TimescaleDB is designed: https://docs.timescale.com/timescaledb/latest/overview/core-concepts
Note: TimescaleDB collects anonymous reports to better understand and assist our users.
For more information and how to disable, please see our docs https://docs.timescale.com/timescaledb/latest/how-to-guides/configuration/telemetry.
CREATE EXTENSION
tutorial=#

后期配置

要使其他机器能够访问 PostgreSQL-15 数据库,需要修改 postgresql.conf及 pg_hba.conf 文件的配置。修改postgresql.conf (/var/lib/pgsql/15/data/)

#listen_addresses = 'localhost'

将注释符号“#”去掉,并将其更改为:

listen_addresses = '*'

修改pg_hba.conf

该文件位于 PostgreSQL 的数据目录下(通常是
/var/lib/pgsql/15/data/pg_hba.conf 或者 /etc/postgresql/<version>/mAIn/pg_hba.conf)。

  • 打开 pg_hba.conf 文件:

sudo vi /var/lib/pgsql/15/data/pg_hba.conf

  • 添加

# IPv4 local connections:

host all all 10.168.1.0/24 tRust

  • 保存文件并重新加载 PostgreSQL 配置:

sudo systemctl restart postgresql-15.service

  • 如果还是不能链接确保您已经配置了适当的防火墙规则,允许 PostgreSQL 的5432端口

sudo systemctl reload postgresql-15.service

说明:
在 PostgreSQL 中,有几种不同的身份验证方法可供选择,其中包括 trust、peer 和 ident。
trust:使用该方法时,用户可以无需密码直接访问数据库。这是最不安全的身份验证方法,因为任何知道连接信息的人都可以登录到数据库。因此,在生产环境中不建议使用 trust 身份验证方法。
peer:该方法适用于本地连接。当操作系统用户名与数据库角色名称匹配时,用户可以无需输入密码访问数据库。这意味着只有具有相同用户名的本地用户才能进行无密码访问。
ident:该方法也适用于本地连接,并要求通过 UNIX 文件系统中的标识文件(通常是 /etc/passwd)进行验证。当操作系统用户名与数据库角色名称匹配且请求连接的主机地址与数据库服务器主机地址匹配时,用户可以无需输入密码访问数据库。但是,请注意,ident 方法在网络连接中并不安全,因此不建议在生产环境中使用。
总结起来,如果希望在特定 IP 范围内允许无密码访问,可以使用 trust 身份验证方法。
对于本地连接,可以考虑使用 peer 或 ident 方法

参考:

https://legacy-docs.timescale.com/v1.7/getting-started/installation/rhel-centos/installation-yum

https://legacy-docs.timescale.com/v1.7/getting-started/setup

https://packagecloud.io/constellio/constellio-updates/packages/el/7/libzstd-1.4.5-3.el7.x86_64.rpm

https://packagecloud.io/trifacta/dependencies/packages/el/7/postgresql12-server-12.5-1PGDG.rhel7.x86_64.rpm?page=5

SElinux策略限制:
setenforce 0
使.NETstat命令列出所有正在监听的端口和相应的服务。
netstat -tuln | grep LISTEN
使用ss命令可以提供更详细的连接状态信息。
ss -tuln | grep LISTEN
使用lsof命令会显示与指定端口关联的进程信息。
lsof -i :<port>
使用firewall-cmd命令(仅当使用Firewalld防火墙时):
firewall-cmd --list-ports
该命令将显示防火墙中允许通过的端口列表。
客户端机器用 telnet PostgreSQL-IP 5432 命令查看端口情况


Tags:centos7   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Centos7下安装部署RabbitMQ,看这篇就够了
前言RabbitMQ是一个开源的强大的企业消息系统,支持主流的操作系统,支持多种开发语言。我们项目中使用RabbitMQ作为消息队列,解耦业务,构建高可靠的消息队列系统。RabbitMQ可以...【详细内容】
2023-11-09  Search: centos7  点击:(306)  评论:(0)  加入收藏
centos7 下安装PostgreSQL 及timescaledb 的过程
前期准备先删除现有的PostgreSQL 比如13使用 sudo yum remove postgresql13-server postgresql13-contrib 该命令将会删除安装包及其依赖项。卸载完成后,为了确保 PostgreSQ...【详细内容】
2023-09-26  Search: centos7  点击:(451)  评论:(0)  加入收藏
Centos7防火墙配置详解
前言:对于firewalld的理解Centos7中使用firewalld来作为防火墙,其底层调用的命令仍然是iptables等命令,但是在配置上发生了较大的变化。 Centos7中有两个位置存放了firewall的...【详细内容】
2023-03-02  Search: centos7  点击:(555)  评论:(0)  加入收藏
手把手教你从安装CentOS7.4镜像开始,搭建IoT视频监控系统
本文分享自华为云社区《华为云ECS服务器安装CentOS7.4镜像,部署GINX服务器、搭建物联网视频监控系统》,作者:DS小龙哥。在CentOS7.4服务器版本的环境下安装nginx服务器、配置文...【详细内容】
2022-10-28  Search: centos7  点击:(442)  评论:(0)  加入收藏
CentOS7.6-搭建SFTP服务
1.需求搭建多账号SFTP,不同的用户只能够查看自己所属的目录 禁止SFTP账号通过SSH连接 SFTP 用户demo1、demo2,所属目录:/data/sftp/demo1、/data/sftp/demo22.操作步骤创建目录...【详细内容】
2022-10-20  Search: centos7  点击:(504)  评论:(0)  加入收藏
Centos7配置iptables来实现白名单访问固定端口
iptables配置方法1.查看之前是否打开iptablessystemctl status iptables #查看当前是否打开iptablesiptables -nL #查看当前规则2.如果没有安装iptables,需要安装wget htt...【详细内容】
2022-08-01  Search: centos7  点击:(784)  评论:(0)  加入收藏
centos7离线升级openssh,漏洞修复
1. 安装telnetyum -y install xinetd telnet-server配置/etc/xinetd.d/telnetcat > /etc/xinetd.d/telnet <<EOFservice telnet{disable = yesflags = REUSEsocket_type = s...【详细内容】
2022-07-11  Search: centos7  点击:(539)  评论:(0)  加入收藏
centos7安装RabbitMQ3.8.4
1、RabbitMQ依赖于Erlang,需要先安装Erlang2、Erlang和RabbitMQ版本有对应关系http://www.rabbitmq.com/which-erlang.html2.3安装Erlang21.3先安装一些必要的依赖:yum -y ins...【详细内容】
2022-07-11  Search: centos7  点击:(375)  评论:(0)  加入收藏
CentOS7搭建svn服务器
1,svn安装 通过yum命令进行安装,命令如下: [root@localhost ~]$ yum -y install subversion 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile...【详细内容】
2022-06-08  Search: centos7  点击:(385)  评论:(0)  加入收藏
centos7系统下无法dhcp自动获取ip地址,怎么解决?
centos7系统下无法dhcp自动获取ip地址问题:VMware WorkStation新建centos7无法DHCP自动获取IP地址。解决方法:在VMware的网络配置NAT正确的情况下,修改vim /etc/sysconfig/netw...【详细内容】
2022-06-01  Search: centos7  点击:(376)  评论:(0)  加入收藏
▌简易百科推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08    IT之家  Tags:Linux   点击:(5)  评论:(0)  加入收藏
从原理到实践:深入探索Linux安全机制
Linux 是一种开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布,其后又衍生出许多不同的发行版(如Ubuntu、Debian、CentOS等)。前言本文将从用户和权限管理、文件系统...【详细内容】
2024-03-27  凡夫编程  微信公众号  Tags:Linux安全   点击:(13)  评论:(0)  加入收藏
在Linux系统中,如何处理内存管理和优化的问题?
本文对 Linux 内存管理和优化的一些高级技巧的详细介绍,通过高级的内存管理技巧,可以帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。在...【详细内容】
2024-03-26  编程技术汇  微信公众号  Tags:Linux   点击:(6)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25    IT之家  Tags:Linux   点击:(9)  评论:(0)  加入收藏
轻松实现Centos系统的软件包安装管理:yum指令实战详解
yum 是一种用于在 CentOS、Red Hat Enterprise Linux (RHEL) 等基于 RPM 的 Linux 发行版上安装、更新和管理软件包的命令行工具。它可以自动解决软件包依赖关系,自动下载并...【详细内容】
2024-02-27  凡夫贬夫  微信公众号  Tags:Centos   点击:(51)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27    IT之家  Tags:Ubuntu   点击:(47)  评论:(0)  加入收藏
Linux中磁盘和文件系统工作原理解析
在Linux系统中,一切皆文件的概念意味着所有的资源,包括普通文件、目录以及设备文件等,都以文件的形式存在。这种统一的文件系统管理方式使得Linux系统具有高度的灵活性和可扩展...【详细内容】
2024-02-20  王建立    Tags:Linux   点击:(49)  评论:(0)  加入收藏
Linux子系统概览
inux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。以下是Linux...【详细内容】
2024-02-01    简易百科  Tags:Linux   点击:(74)  评论:(0)  加入收藏
Linux内核:系统之魂与交互之源
内核,作为任何基于Linux的操作系统的心脏,扮演着至关重要的角色。它不仅是计算机系统软件与硬件之间的桥梁,更是确保系统稳定、高效运行的关键。内核提供了一系列核心功能,为上...【详细内容】
2024-02-01  松鼠宝贝    Tags:Linux内核   点击:(65)  评论:(0)  加入收藏
如何确保Linux进程稳定与持久
在Linux系统中,进程的稳定性与持久性对于维持系统的持续运行至关重要。然而,由于各种原因,进程可能会面临崩溃或系统重启的情况。为了确保关键进程能够持续运行,我们必须采取一...【详细内容】
2024-01-19  松鼠宝贝    Tags:Linux进程   点击:(84)  评论:(0)  加入收藏
站内最新
站内热门
站内头条