首页 > 其他分享 >KingbaseES V8R6集群运维案例之---PGPASSWORD变量导致esrep用户连接主库失败

KingbaseES V8R6集群运维案例之---PGPASSWORD变量导致esrep用户连接主库失败

时间:2024-03-29 18:48:35浏览次数:28  
标签:主库 bin V8R6 node202 kingbase esrep encpwd ksql

案例说明:
KingbaseES V8R6集群,在备库执行clone时,esrep用户认证失败,导致clone失败。
适用版本:
KingbaseES V8R6

一、问题现象

如下所示,在执行备库clone是,esrep认证失败:

备库sys_log日志:(esrep用户认证失败)

二、问题分析
对于KingbaseES V8R6集群,esrep的用户通过~/.encpwd建立认证(免密连接)

[kingbase@node202 bin]$ cat ~/.encpwd
*:*:*:system:MTIzNDU2NzhhYg==
*:*:*:esrep:S2luZ2Jhc2VoYTExMA==

1、用ksql在备库连接主库和本节点
如下所示,esrep连接本节点和远程主库都出现认证失败:

[kingbase@node202 bin]$ ./ksql -h 192.168.1.201 -U esrep  esrep
ksql: error: could not connect to server: FATAL:  password authentication failed for user "esrep"
[kingbase@node202 bin]$ ./ksql -h 192.168.1.202 -U esrep  esrep
ksql: error: could not connect to server: FATAL:  password authentication failed for user "esrep"
[kingbase@node202 bin]$ ./ksql -h 127.0.0.1 -U esrep  esrep
ksql: error: could not connect to server: FATAL:  password authentication failed for user

2、查看.encpwd文件密码信息
1)base64解密查看

[kingbase@node202 bin]$ echo 'S2luZ2Jhc2VoYTExMA=='|base64 -d
Kingbaseha110

2)通过密码访问连接

---由以上可知,.encpwd中的密码没有被修改,是esrep用户在连接数据库时没有访问.encpwd文件,导致无法获取密码信息。

3)查看.encpwd文件属性
如下所示,.encpwd文件属性正常。

[kingbase@node202 bin]$ ls -lh ~/.encpwd
-rw-------. 1 kingbase kingbase 63 Aug 25 17:01 /home/kingbase/.encpwd

4)检查kingbase用户环境变量配置
如下图所示,在.bash_profile文件发现PGPASSWORD的环境变量:

   PGPASSWORD是PostgreSQL系统环境变量,在客户端设置后再远程连接数据库时,将优先使用这个密码。

5)配置PGPASSWORD测试
如下所示,将PGPASSWORD变量值配置为和.encpwd文件中相同的密码后,esrep可以免密登录。

  由以上可知,当数据库配置PGPASSWORD变量后,优先读取此变量,如果此变量值配置和数据库用户密码不一致时,将导致用户远程连接数据库失败。

三、问题解决
将PGPASSWORD变量在.bash_profile注释后,esrep读取.encpwd文件后获取密码,可以正常免密登录,问题解决。

[kingbase@node202 bin]$ cat ~/.bash_profile |grep -i password
#export PGPASSWORD=12345678ab

[kingbase@node202 bin]$ source ~/.bash_profile
[kingbase@node202 bin]$ ./ksql -h 127.0.0.1 -U esrep  esrep
ksql (V8.0)
Type "help" for help.

esrep=#

四、问题总结
对于KingbaseES V8R6集群,用户可以通过.encpwd文件配置免密登录,不用再配置其他环境变量,以免造成许多访问连接隐形故障。
如下所示i,可以通过sys_encpwd工具生成.encpwd文件:

[kingbase@node202 bin]$ ./sys_encpwd --help
[-H, --hostname=]                  host name
[-P, --portnum=]                   port number
[-D, --database=]                  database name
[-U, --user=]                      user name
[-W, --password=]                  password

# 如下所示,tom用户可以从任何ip,远程访问端口号为54321的数据库,认证数据库为test,
  密码为‘beijing’。
[kingbase@node202 bin]$ ./sys_encpwd -H \* -P 54321 -D test -U tom -W beijing
[kingbase@node202 bin]$ cat ~/.encpwd
*:*:*:system:MTIzNDU2NzhhYg==
*:*:*:esrep:S2luZ2Jhc2VoYTExMA==
*:54321:test:tom:YmVpamluZw==

# tom用户免密连接
[kingbase@node202 bin]$ ./ksql -U tom test
ksql (V8.0)
Type "help" for help.

test=>

标签:主库,bin,V8R6,node202,kingbase,esrep,encpwd,ksql
From: https://www.cnblogs.com/kingbase/p/17923239.html

相关文章

  • KingbaseES V8R6集群运维案例之---备库register故障
    案例说明:据现场实施人员说,备库执行了clone,启动数据库服务,执行'repmgrstandbyregister'后,无法将备库register到集群。适用版本:KingbaseESV8R6一、问题现象如下图所示,执行'repmgrstandbyregister',register失败:二、问题分析1、repmgrstandbyregister分析如下图所示:......
  • KingbaseES集群运维案例之-- V8R3与V8R6集群wal函数应用
    案例说明:KingbaseESV8R3和V8R6集群在通过函数获取wal日志的相关信息时,两个版本的函数名称不同,本案例做了函数应用的对比和总结。适用版本:KingbaseESV8R3/R6一、KingbaseESV8R3相关函数Tips:在V8R3的版本,事务日志名称为xlog。1、查询数据库支持的函数test=#selectpron......
  • kingbaseES V8R6集群运维案例之---配置priority防止failover切换案例
    案例说明:在一主多备的架构中,需要配置一台备库在主备切换时,不能选举为主库。对于repmgr主备切换主库的选择算法如下:Tips:Repmgr选举候选备节点会以以下顺序选举:LSN---->Priority---->Node_ID。系统会先选举一个LSN比较大者作为候选备节点;如LSN一样,会根据Priority优先级进行比......
  • KingbaseES V8R6集群运维案例之---级联备库upstream节点故障
    KingbaseESV8R6集群运维案例之---级联备库upstream节点故障案例说明:在KingbaseESV8R6集群,构建级联备库后,在其upstream的节点故障后,级联备库如何处理?适用版本:KingbaseESV8R6集群架构:案例一:一、配置集群的recovery参数(allnodes)Tips:关闭备库的aut-recovery机制......
  • KingbaseES V8R6集群运维案例之---主备failover切换原因分析
    案例说明:生产环境,KingbaseESV8R6的集群发生failover切换,分析集群切换的原因。适用版本:KingbaseESV8R6集群架构:137.xx.xx.67主原备库137.xx.xx.94原主库137.xx.xx.68vip地址一、日志分析1、分析原备库hamgr.log如下所示,通过原备库hamgr.log日志获取到具体......
  • KingbaseES V8R6数据库运维案例之---用户权限导致的备份恢复故障
    案例说明:由于限制了用户对数据库的访问,导致在执行‘sys_backup.shinit’初始化物理备份时,执行失败。适用版本:KingbaseESV8R6一、问题现象如下所示,执行‘sys_backup.shinit’初始化物理备份:1、执行初始化失败[kingbase@node201bin]$shsys_backup.shinitERROR:Con......
  • 问题分析 | 为什么主库Waiting for semi-sync ACK from slave会阻塞set global super_
    作者:卢文双资深数据库内核研发本文首发于2023-12-0321:33:21https://dbkernel.com问题描述为什么主库上有Waitingforsemi-syncACKfromslave的时候,执行setglobalsuper_read_only=ON会导致等待全局读锁?问题复现MySQL主从高可用集群,semi-sync超时无限大:setglob......
  • 神通数据库异机恢复(主库不停机)
    1.主库上需要确保在归档模式[root@localhostbin]#./isql-hlocalhost-p2003-dHXLsysdbaSQL>selectlog_modefromv$database;LOG_MODE------------ARCHIVELOG(1row)若数据库不在归档模式,需要按照如下命令进行修改为归档模式mkdir-p/opt/ShenTong/archalterd......
  • Slave被误写入数据如何恢复到主库
    背景在GreatSQL主从复制环境中,有时候可能会出现一些误操作,将本应该写入到主库的数据写入到了从库,导致主从数据不一致,影响数据同步。是否可以将写入从库的数据同步写入主库呢?测试环境角色IP地址数据库开放端口版本主库192.168.137.1793308GreatSQL8.0.32从库......
  • 使用druid数据源进行配置主库和从库,并实现定时拉取从库数据功能
    业务场景:Oracle数据库,项目中需要用到其它友商的数据,但是友商并未提供接口,而是直接提供了数据库,让我定时拉取同步其数据。使用技术:使用了druid数据源,并配置从库maven坐标<!--阿里数据库连接池--> <dependency><groupId>com.alibaba</groupId><ar......