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 的步骤:
-
创建一个名为
pgdg.repo
的仓库配置文件:sudo nano /etc/yum.repos.d/pgdg.repo
-
将以下内容复制到
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
-
保存并关闭文件。
-
运行以下命令来安装 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
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)