GridDB:Node.js连接时出现‘Connection refused’错误的排查与解决
GridDB连接"Connection refused"错误排查与解决
可能成因
- GridDB服务未启动:本地GridDB进程未运行,无服务响应连接请求
- 端口监听异常:GridDB未配置监听31810端口,或该端口被其他进程占用
- 防火墙/安全组拦截:本地防火墙或云安全组禁止了31810端口的入站连接
- 集群配置不匹配:GridDB集群的
clusterName、绑定IP与客户端配置不一致 - 版本兼容性问题:griddb-node客户端版本与GridDB服务器版本不兼容
- 代码异步逻辑问题:连接未建立完成就执行关闭或操作,触发连接失败
对应解决步骤
- 检查并启动GridDB服务
Linux系统:执行sudo systemctl start griddb启动服务,sudo systemctl enable griddb设置开机自启;Windows系统在「服务」列表中找到GridDB服务手动启动。 - 验证端口监听状态
Windows执行netstat -ano | findstr :31810,Linux执行ss -tulpn | grep 31810,确认有GridDB进程监听31810端口。如果端口不匹配,打开GridDB的gs_cluster.json配置文件,修改servicePort参数为31810并重启服务。 - 开放防火墙/安全组端口
Linux:执行sudo firewall-cmd --add-port=31810/tcp --permanent && sudo firewall-cmd --reload添加永久规则;Windows在Windows Defender防火墙中创建入站规则,允许31810端口的TCP连接。 - 核对集群配置
打开gs_cluster.json文件,确认clusterName为defaultCluster,且host字段包含localhost或127.0.0.1(若集群绑定外部IP,客户端需填写该IP而非localhost)。 - 匹配客户端与服务器版本
执行npm list griddb-node查看客户端版本,确保与GridDB服务器大版本一致(如均为5.x系列),版本不兼容时升级或降级客户端包。 - 修正代码异步逻辑
griddb-node部分操作为异步,需确保连接建立后再执行数据库操作,避免过早关闭连接。修改代码示例:const griddb = require('griddb-node'); async function connectGridDB() { try { const factory = griddb.StoreFactory.getInstance(); const store = factory.getStore({ host: 'localhost', port: 31810, clusterName: 'defaultCluster', username: 'admin', password: 'admin' }); // 通过获取容器列表验证连接有效性 const containers = await store.getContainerNames(); console.log('连接成功,容器列表:', containers); store.close(); } catch (error) { console.error('连接被拒绝错误:', error); } } connectGridDB();
内容的提问来源于stack exchange,提问作者Jeff Smith
相关产品推荐
相关产品推荐

