本机环境:centos7.9,postgres14, pgpool-II,流复制 ,一主一从
假设postgres同步已经做好,pgpool-II能启动
SCRAM方法错误
当您使用psql或navicat 账密方式连接pgpool时,会有个scram身份验证,您可能会看到如下错误:
psql: error: could not connect to server: ERROR: failed to authenticate with backend using SCRAM DETAIL: valid password not found
查了很多资料,包括最近的热门chatGPT,都只是简单的介绍
您需要在pgpool.conf中的pool_passwd参数指定的文件中定义密码
pool_passwd = 'pool_passwd'
而在pgpool-II的目录下,会有个pool_passwd文件,如果没有,使用命令生成
pg_md5 -m -p -u postgres pool_passwd
password:
格式如下
[root@localhost pgpool-II]# cat pool_passwd
postgres:md53175bce1d3201d16594cebf9d7eb3f9d
使用 pg_md5 postgres 可以直接查看md5的值,但一般情况与pool_passwd内的值不一致
如果还不行,继续检查postgres 的pg_hba.conf文件与pgpool的pool_hba.conf 文件
保证ip4下的是trust或md5
# IPv4 local connections:
host all all 0.0.0.0/0 trust
如果还是这个错,各种重启后还是报SCRAM错误,再往下使用sql检查
select passwd from pg_shadow where usename = 'postgres';
一般的文章就叫你查看里面的md5密码,就没然后了,而正常情况结果其实是这样的
问题就出到这里,密码为SCRAM的格式,但我们只用md5的方式登录,所以需要修改此密码为md5的格式,如何修改呢?
进入数据库主库重新修改一遍密码即可
[root@pg1 pg1]# su postgres
bash-4.2$ psql
psql (14.7)
输入 "help" 来获取帮助信息.
postgres=# \password postgres
Enter new password for user "postgres":
再输入一遍:
postgres=#
结果如下
此时再连接pgpool的9999,问题解决。
标签:postgres,passwd,SCRAM,II,pgpool,pool,md5 From: https://blog.51cto.com/bomby/6085317