python SCRAM authentication requires libpq version 10 or above

问题

python在centos7下连接postgresql数据库报错:

python SCRAM authentication requires libpq version 10 or above

大概意思是libpg的版本低了,但使用 yum install postgresql-devel 只能更新到 9.2.24版本

参考网址

参考

安装postgresql10-devel:

https://centos.pkgs.org/7/postgresql-10-x86_64/postgresql10-devel-10.18-1PGDG.rhel7.x86_64.rpm.html

到这个页面找到安装方法:

“Add PostgreSQL 10 repository as described on its homepage:

https://yum.postgresql.org/repopackages.php

Install postgresql10-devel rpm package:

# yum install postgresql10-devel”

# 查看pg版本

pg_config --version

1. 添加源

rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2. 安装新版本

yum install postgresql10-devel

3. 查找pg_config的位置

find / -type f -name "pg_config"

4. 先删除 /usr/bin 下的 pg_config

5. 建立软连接

 ln -s /usr/pgsql-10/bin/pg_config pg_config

6. 再次查看 pg_confg 版本是不是更新了

#pg_config --version

PostgreSQL 10.18

实战更新

查看pg版本:

> pg_config --version
> psql --version
psql (PostgreSQL) 9.2.24

添加 arm yum源:

# https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-aarch64/

rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-aarch64/pgdg-redhat-repo-latest.noarch.rpm

创建

[pgdg13]
name=PostgreSQL 13 for RHEL/CentOS $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-$releasever-$basearch
enabled=1 # 开启该依赖库
gpgcheck=0
gpgkey=https://download.postgresql.org/pub/repos/yum/RPM-GPG-KEY-PGDG-13

如果使用 yum install postgresql 命令无法安装 PostgreSQL 的10或更高版本,这可能是因为默认的 CentOS 7 软件包仓库中没有包含这些较新的 PostgreSQL 版本。

要安装10或更高版本的 PostgreSQL,你可以尝试使用 PostgreSQL 官方的 YUM 仓库。以下是在 CentOS 7 上安装 PostgreSQL 13 的步骤:

  1. 创建一个名为 pgdg.repo 的仓库配置文件:

    sudo nano /etc/yum.repos.d/pgdg.repo
  2. 将以下内容复制到 pgdg.repo 文件中:

    [pgdg13]
    name=PostgreSQL 13 for RHEL/CentOS $releasever - $basearch
    baseurl=https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-$releasever-$basearch
    enabled=1
    gpgcheck=0
    gpgkey=https://download.postgresql.org/pub/repos/yum/RPM-GPG-KEY-PGDG-13
  3. 保存并关闭文件。

  4. 运行以下命令来安装 PostgreSQL 13:

    yum install postgresql13

如果你只想安装 PostgreSQL 客户端工具而不是完整的数据库服务器,可以使用以下命令安装:

sudo yum install postgresql13-contrib

5.重新挂载软连

 [root@m-api-7bf97b7557-slcmq yum.repos.d]# find / -name "pg_config"
/usr/bin/pg_config
/usr/pgsql-13/bin/pg_config

删除 /usr/bin 下的 pg_config
> rm -rf /usr/bin/pg_config

建立软连:
> ln -s /usr/pgsql-13/bin/pg_config pg_config

查看版本:
> pg_config --version

PostgreSQL 13.11

这样应该能够成功安装 PostgreSQL 13。如果你需要其他版本的 PostgreSQL,可以在 pgdg.repo 文件中相应地更改基本 URL。


相关文章:
python SCRAM authentication requires libpq version 10 or above

为者常成,行者常至