我一次又一次地遇到这个问题,在编辑一些 cassandra 配置文件时,cassandra 服务不再启动。
我如何理解为什么service cassandra start
不启动 Cassandra?如果我运行/etc/init.d/cassandra
它就会开始正常。
journalctl -u cassandra.service
根本没有日志。
/var/log/cassandra/system.log
, /var/log/cassandra/debug.log
,/var/log/syslog
也没有日志。
当我执行时service cassandra status
状态为“活动(已退出)”
apt-get
我通过debian安装了最新的 cassandra 版本。
从你的帖子中我不清楚
service cassandra start
以前是否有效。我提出这一点是因为在使用 systemd 的系统上,service
可能会被禁用,并且您需要使用 启动 Cassandrasystemctl
,例如:有趣的是,您跑去
journalctl
检查,但它只适用于显示journald
systemd 的日志服务的日志。我建议您的系统是否使用 systemd 来运行服务并尝试使用
systemctl
.干杯!更新- 我忘记指出明显的事情是:
我提到了服务名称,因为您
cassandra
拼写错误:此外,您需要
root
启动该服务,通常具有sudo
访问权限:如果没有
root
访问权限,普通用户将没有正确的权限,因此消息通常不会保留在日志中。这不是最好的解决方案,因为由于潜在的安全问题,不建议以 root 身份运行 cassandra。但为了使其暂时运行(并确保这确实是权限问题),我必须以 root 和
chmod -R 777
所有 cassandra 文件夹身份运行它:/etc/cassandra
/var/lib/cassandra
/var/log/cassandra
(在执行此操作时
chmod
以及再次运行 cassandra 之前,您必须确保 cassandra 没有通过 运行ps aux | grep cassandra
)为了以 root 身份运行它,我必须
sudo systemctl edit --full cassandra
将其添加User=root
到该[Service]
部分中。并WantedBy=multi-user.target
进入[Install]
部分。现在
cassandra.service
看起来像这样:我如何发现这是一个权限问题?我通过运行命令以非 root 用户身份运行 cassandra
cassandra
。这在前台运行了 cassandra,我看到了 AccessDenied 异常。