elasticsearch which: no java in (/sbin:/bin:/usr/sbin:/usr/bin) Could not find any executable java

which: no java in (/sbin:/bin:/usr/sbin:/usr/bin)

Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME

elasticsearch 必须要要用非root用户启动,所以新建了一个elasticsearch用户才能启动,(默认elasticsearch分在elasticsearch组里面,groups elasticsearch查看用户在哪个组)

但是用elasticsearch启动的时候,又报了没有访问权限的错误(原因是因为解压用的sudo解压,文件属于root)

那就用sudo 启动,结果就出现了

which: no java in (/sbin:/bin:/usr/sbin:/usr/bin)

Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME

关键是echo $JAVA_HOME有值,并且java -version也有值

然后还加了软连接到/usr/bin这个目录下,而且也在~/.bash_profile里面添加了java路径。

还是不行。


最后的解决办法就是,用root账户递归修改elasticsearch-5.5.0目录的权限为elasticsearch:elasticsearch,也就是:

chown elasticsearch:elasticsearch  -R elasticsearch-5.5.0

然后使用elasticsearch账户不用sudo启动,bin/elasticsearch ,就可以了!!


另外,到今天为止,这个问题我找到原因了!!!并且解决了

原因是:/etc/sudoers里面的secure_path里面的命令是sudo可以使用的命令,环境变量默认不会加载进去。为了强制加载环境变量。使用!env_reset

也就是:

Defaults    !env_reset

参考这里


你可能感兴趣的:(大数据,数据库,elasticsearch)