暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

金仓 kingbaseES 集群 esrep 用户认证失败:KINGBASE_PASSWORD 环境变量配置问题排查与修复

原创 jiayou 2025-09-03
1024

金仓 kingbaseES 集群 esrep 用户认证失败:KINGBASE_PASSWORD 环境变量配置问题排查与修复

一、问题现象

执行repmgr 命令提示esrep认证失败。

查看sys_log日志提示esrep用户认证失败。

二、问题分析

1、查看备机状态

集群状态正常。

2、对于KES 集群,esrep的用户通过~/.encpwd建立认证(免密连接),继续查看并验证密码有效性

$ cat ~/.encpwd

$ ksql esrep esrep

确认为节点node1 ~/.encpwd密码设置无问题。

3、检查用户环境变量

$ cat ~/.bashrc

$ cat ~/.bash_profile

发现 KINGBASE用户配置了KINGBASE_PASSWORD 环境变量,且密码不一致。

4、注释掉KINGBASE_PASSWORD 环境变量,并重新验证。

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

三、总结

对于KES集群环境,esrep的用户通过~/.encpwd建立认证(免密连接)。如果KINGBASE用户配置KINGBASE_PASSWORD变量,将优先使用此变量,会导致集群esrep用户连库认证失败,并且KINGBASE_PASSWORD变量明文显示密码,因此有免密登录需求的话可以考虑如下方式,以免造成许多访问连接隐形故障。
在集群节点上,使用用户kingbase可以通过sys_encpwd工具生成.encpwd文件。

sys_encpwd 是 KingbaseES 用户密码配置工具。

使用方法:

sys_encpwd [OPTION]... [PASSWORD]

通用选项:

[-H, --hostname=] 主机名

[-P, --portnum=] 端口号

[-D, --database=] 数据库名称

[-U, --user=] 用户名

[-W, --password=] 口令

[-?, --help] 显示帮助信息,然后退出

如图所示设置本地连接密码。

此外还有个口令文件。KINGBASE用户主目录中的.kbpass文件能够包含在连接需要时使用的口令。

这个文件应该包含下列格式的行:

hostname:port:database:username:password

注意:口令文件上的权限必须不允许所有人或组内访问,可以用chmod 0600 ~/.kbpass这样的命令。

举例如下:

# cat>>/home/kingbase/.kbpass<<EOF

localhost:54321:*:system:xxxxx

EOF

# chown kingbase:kingbase /home/kingbase/.kbpass

# chmod 600 /home/kingbase/.kbpass

最后修改时间:2025-09-03 06:54:16
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论