解决: java.lang.RuntimeException: can not run elasticsearch as root

目录


种一棵树最好的时间是10年前,其次就是现在,加油!
--by蜡笔小柯南

一、问题分析

启动es时,报错:org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

shell 复制代码
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:173) ~[elasticsearch-7.17.25.jar:7.17.25]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160) ~[elasticsearch-7.17.25.jar:7.17.25]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77) ~[elasticsearch-7.17.25.jar:7.17.25]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112) ~[elasticsearch-cli-7.17.25.jar:7.17.25]
        at org.elasticsearch.cli.Command.main(Command.java:77) ~[elasticsearch-cli-7.17.25.jar:7.17.25]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125) ~[elasticsearch-7.17.25.jar:7.17.25]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80) ~[elasticsearch-7.17.25.jar:7.17.25]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:107) ~[elasticsearch-7.17.25.jar:7.17.25]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:183) ~[elasticsearch-7.17.25.jar:7.17.25]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434) ~[elasticsearch-7.17.25.jar:7.17.25]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169) ~[elasticsearch-7.17.25.jar:7.17.25]
        ... 6 more
uncaught exception in thread [main]
java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:107)
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:183)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:434)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:169)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:160)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:112)
        at org.elasticsearch.cli.Command.main(Command.java:77)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:125)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80)

意思是:不能以root用户来运行es,es默认是不能以root用户来运行es的,所以,我们需要新建一个用户,以非root用户来运行

二、问题解决

  1. 创建新用户,使用adduser 命令,adduser 后跟用户名,这个用户名可以随便起,下面以es为例

    shell 复制代码
    -- 创建一个名为 es 的用户
    
    adduser es
  2. 创建完成后,使用 id 命令,查看是否能看到: uid、gid、groups 信息

    shell 复制代码
    id es
  3. 查看 /home 目录下,是否有和用户名一致的文件夹目录,用户成功创建后,会在 home下生成一个以用户名命名的文件夹

    shell 复制代码
    ls /home
  4. 有对应的文件夹说明用户创建成功

  5. 给新创建的用户设置密码,输入密码以及确认密码后,回车确认

    shell 复制代码
    passwd es
  6. 授予新用户权限,chown -R es:es 你自己es的安装路径,路径替换为你自己的

    shell 复制代码
    将 /opt/es/elasticsearch-7.17.25/ 替换为你自己的es路径
    
    chown -R es:es /opt/es/elasticsearch-7.17.25/
  7. 切换到新创建的用户

    shell 复制代码
    su es
  8. 输入密码进行切换

  9. 再启动运行es

三、注意事项

如果使用了 useradd 命令去创建用户,使用 id 命令查询时,存在 uid、gid、groups信息,但是在 /home 下没有用户文件目录,如果还想创建这个名称的用户时,需要先删除用户,使用以下命令:

shell 复制代码
删除用户名为es的用户,根据你自己的用户名进行修改

userdel -r es

注意:删除完成后,再使用 adduser 命令去创建,不要用 useradd 去创建

如果你有任何疑问或经验分享,可以在评论区留言哦~~

不管在任何时候,我希望你永远不要害怕挑战,不要畏惧失败。每一个错误都是向成功迈出的一步,每一个挑战都是成长的机会,因为每一次的努力,都会使我们离梦想更近一点。只要你行动起来,任何时候都不算晚。最后,把座右铭送给大家:种一棵树最好的时间是10年前,其次就是现在,加油!共勉 💪。

相关推荐
invicinble几秒前
关于springboot引入traceid来保障可观测型
java·spring boot·后端
精神病不行计算机不上班11 分钟前
[Java Web]在IDEA中完整实现Servlet的示例
java·servlet·tomcat·html·intellij-idea·web
chushiyunen13 分钟前
javadoc规范、idea生成javadoc等
java·ide
小羊学伽瓦16 分钟前
ThreadLocal
java·jvm·算法
老王熬夜敲代码20 分钟前
Linux信号量
linux·笔记·面试
Tjohn922 分钟前
Java环境配置(JDK8环境变量配置)补充
java·开发语言
摇摆的含羞草23 分钟前
Java加解密相关的各种名词的含义,各种分类的算法及特点
java·开发语言·算法
顾安r23 分钟前
12.17 脚本工具 自动化全局跳转
linux·前端·css·golang·html
三小尛23 分钟前
linux项目自动化构建工具(make和makefile)
linux
大聪明-PLUS24 分钟前
如何修补 Linux 内核:完整指南
linux·嵌入式·arm·smarc