KStudio 客户端无法访问 KES 数据库服务器的指定 IP / 端口,报错:The_connection attempt failed.Reason:Cannot assign requested address: connect
遇到的错误 The connection attempt failed. Reason: Cannot assign requested address: connect 是一个网络层面的连接问题,通常与 KStudio 客户端或 KES 服务器的网络配置有关。
可能原因分析
-
网络连接问题:
- 客户端无法解析服务器主机名
- 网络防火墙/安全组阻止了连接
- KES服务器未正确监听端口
-
资源限制问题:
- 客户端操作系统端口耗尽
- 最大文件描述符限制达到上限
-
KES配置问题:
kingbase.conf配置错误sys_hba.conf认证配置不当
检查网络连接与配置
第一步:检查基本网络连接
-
测试网络连通性:
ping <KES服务器IP> telnet <KES服务器IP> <端口>(默认54321) #例如: netstat -tuln | grep 54321 # 默认端口为 54321,根据实际配置调整(linux) Test-NetConnection 服务器IP -Port 54321 # Windows PowerShell -
检查KES服务状态:
# 在KES服务器上执行 systemctl status kingbase netstat -tulnp | grep kingbase
第二步:检查KES配置
-
验证 kingbase.conf:
# 确认监听配置正确(通常位于KES安装目录的data目录下) grep 'listen_addresses' kingbase.conf # 应该显示:listen_addresses = '*' 或包含客户端IP -
检查 kb_hba.conf:
# 确保有允许客户端的条目 grep 'host all all' sys_hba.conf
第三步:验证数据库服务器状态
确认数据库服务已启动:
systemctl status kingbase
检查数据库监听地址和端口:
netstat -tuln | grep 54321 # 默认端口为 54321,根据实际配置调整
第四步:检查防火墙规则
开放数据库端口(例如 54321):
# Linux(firewalld)
firewall-cmd --zone=public --add-port=54321/tcp --permanent
firewall-cmd --reload
# Windows
# 通过"高级安全 Windows Defender 防火墙"添加入站规则
检查数据库服务器配置
第一步:确认监听地址配置
修改 kingbase.conf,确保允许远程连接:
# 允许所有 IP 连接
listen_addresses = '*'
# 端口号:确认端口与客户端一致 54321(默认)
port = 54321
第二步:配置客户端访问权限
修改 sys_hba.conf,添加客户端 IP 访问规则:
# 允许所有 IP 通过密码连接
host all all 0.0.0.0/0 scram-sha-256
第三步:重启数据库服务
# KES 服务重启命令
systemctl restart kingbase
# 或手动重启
su - kingbase
安装目录/Server/bin/sys_ctl restart -D data目录
第四步:检查 KStudio 连接参数的其他配置
确认无遗漏的参数错误:
- 数据库名 :默认是
test,确认填写正确; - 用户名 / 密码 :默认超级用户是
system,密码是安装时设置的,确认无误; - SSL 连接:临时关闭 SSL(KStudio 连接界面取消勾选 "SSL"),避免 SSL 配置错误导致连接失败。