先运行sudo apt-get update && sudo apt-get install -f自动修复依赖,若仍失败则手动安装缺失包(如libssl1.1),严禁使用--force-depends,否则因ABI不兼容导致启动崩溃。

Debian/Ubuntu 用 dpkg 安装失败,缺依赖怎么办
直接 dpkg -i couchbase-server-*.deb 很可能报错退出,常见提示是 libcurl4、libc6 或 libssl1.1 版本不匹配。这不是 Couchbase 包本身有问题,而是系统缺少或版本过旧。
- 先运行
sudo apt-get update && sudo apt-get install -f,让 apt 自动修复依赖冲突 - 若仍失败,手动安装缺失包:比如报
libssl1.1缺失,就执行sudo apt-get install libssl1.1(Ubuntu 20.04+ 默认带;18.04 需启用universe源) - 不要强行加
--force-depends,Couchbase 启动时会因底层库 ABI 不兼容而崩溃,错误日志通常在/opt/couchbase/var/lib/couchbase/logs/下的error.log
RHEL/CentOS 用 rpm 安装卡在 openssl 或 hugepages 警告
rpm 安装成功但服务起不来,多半是两个隐藏问题:OpenSSL 版本太老(尤其 CentOS 7 默认 openssl098e),或内核启用了 transparent hugepages(THP)。
- 检查 OpenSSL:运行
openssl version,若输出OpenSSL 1.0.2k或更低,需升级到 1.1.x(CentOS 7 可用 SCL 或第三方源,如epel-release+openssl11) - 禁用 THP:临时关闭用
echo never > /sys/kernel/mm/transparent_hugepage/enabled;永久生效需在/etc/rc.d/rc.local加该命令,并确保文件有执行权限 - 别忽略安装时的
swappiness提示——Couchbase 要求vm.swappiness=1,否则内存压力大时会频繁 swap,拖慢响应甚至触发 OOM killer
systemctl start couchbase-server 报 “failed to start”
服务启动失败不是配置问题,而是权限或路径问题。Couchbase 进程默认以 couchbase 用户运行,但安装后目录归属常没自动设好。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 确认
/opt/couchbase所有者:执行sudo chown -R couchbase:couchbase /opt/couchbase - 检查 systemd 单元文件是否被覆盖:运行
sudo systemctl cat couchbase-server,确认User=couchbase和WorkingDirectory=/opt/couchbase存在且未被注释 - 启动前务必开放端口:至少放开
8091(Web 控制台)和11210(数据服务),用sudo firewall-cmd --permanent --add-port=8091/tcp等命令,然后 reload 防火墙
浏览器打不开 http://localhost:8091,但服务显示 active
这说明进程起来了,但监听地址不对。默认情况下 Couchbase 绑定的是 127.0.0.1:8091,如果用 curl -v http://localhost:8091 能通但浏览器不能,大概率是服务绑定到了具体 IP(比如安装时填了主机名或外网 IP)。
- 查监听地址:运行
sudo ss -tlnp | grep :8091,看Local Address:Port是*:8091还是127.0.0.1:8091或某个具体 IP - 若只绑定了
127.0.0.1,改配置需重启服务:编辑/opt/couchbase/etc/couchbase/static_config,添加一行rest_interface = *:8091,再sudo systemctl restart couchbase-server - 注意:生产环境不建议开
*,应明确指定内网 IP,并配反向代理或负载均衡器做入口
真正麻烦的不是安装命令本身,而是安装后那几处不报错但会让整个流程卡死的细节:THP、swappiness、目录权限、监听地址绑定方式——它们不会阻止 dpkg 或 rpm 返回 0,却会让 systemctl status 显示 green 的 active,然后你对着空白页面干瞪眼。










