Ubuntu22.04下CouchDB3.2.2集成Clouseau2.21.2握手失败求助
解决CouchDB Clouseau握手阶段断开连接及“ou est clouseau?”问题
针对你在Ubuntu 22.04环境下,使用CouchDB 3.2.2 + OpenJDK 8 + Clouseau 2.21.2遇到的握手断开、CouchDB提示“ou est clouseau?”的问题,可按以下步骤排查解决:
1. 验证CouchDB与Clouseau的节点配置一致性
- 编辑CouchDB配置文件(通常路径为
/opt/couchdb/etc/local.ini或/etc/couchdb/local.ini),找到[clouseau]配置段,确保参数正确:enable = true host = 127.0.0.1 port = 4369 - 确认CouchDB的Erlang节点名称(默认是
couchdb@127.0.0.1),Clouseau启动时的节点名称需保持主机部分一致(如clouseau@127.0.0.1,避免使用localhost,防止解析冲突)。
2. 确保Erlang Cookie完全匹配
- 查看CouchDB的Erlang Cookie内容:
cat /opt/couchdb/.erlang.cookie - 启动Clouseau时指定相同的Cookie:
Cookie是Erlang节点通信的密钥,不匹配会直接导致握手失败。java -jar clouseau-2.21.2.jar -name clouseau@127.0.0.1 -setcookie "$(cat /opt/couchdb/.erlang.cookie)"
3. 排查端口占用与防火墙限制
- 检查Erlang分布式端口(默认4369)是否被其他进程占用:
sudo lsof -i :4369 - 临时关闭防火墙测试连通性:
若测试正常,重新启用防火墙并添加端口允许规则:sudo ufw disablesudo ufw enable sudo ufw allow 4369/tcp sudo ufw allow 40000:41000/tcp # 覆盖Clouseau可能使用的动态端口范围
4. 增强日志排查细节
- 启动Clouseau时添加DEBUG级日志,获取更详细的握手失败信息:
java -Droot.level=DEBUG -jar clouseau-2.21.2.jar -name clouseau@127.0.0.1 -setcookie "$(cat /opt/couchdb/.erlang.cookie)" - 确认OpenJDK 8环境变量配置正确:
配置完成后重新启动Clouseau。export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH
5. 验证Erlang节点连通性
- 安装Erlang基础工具(若未安装):
sudo apt install erlang-base - 启动Erlang Shell并连接到CouchDB的节点集群:
erl -name test@127.0.0.1 -setcookie "$(cat /opt/couchdb/.erlang.cookie)" - 在Erlang Shell中输入以下命令,查看是否能识别Clouseau节点:
若返回结果包含nodes().clouseau@127.0.0.1,说明节点通信正常;否则需重新检查节点名称和Cookie配置。
内容的提问来源于stack exchange,提问作者buisman
相关产品推荐
相关产品推荐

