目录
种一棵树最好的时间是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用户来运行
二、问题解决
-
创建新用户,使用
adduser
命令,adduser 后跟用户名,这个用户名可以随便起,下面以es为例shell-- 创建一个名为 es 的用户 adduser es
-
创建完成后,使用
id
命令,查看是否能看到: uid、gid、groups 信息shellid es
-
查看
/home
目录下,是否有和用户名一致的文件夹目录,用户成功创建后,会在 home下生成一个以用户名命名的文件夹shellls /home
-
有对应的文件夹说明用户创建成功
-
给新创建的用户设置密码,输入密码以及确认密码后,回车确认
shellpasswd es
-
授予新用户权限,
chown -R es:es 你自己es的安装路径
,路径替换为你自己的shell将 /opt/es/elasticsearch-7.17.25/ 替换为你自己的es路径 chown -R es:es /opt/es/elasticsearch-7.17.25/
-
切换到新创建的用户
shellsu es
-
输入密码进行切换
-
再启动运行es
三、注意事项
如果使用了 useradd
命令去创建用户,使用 id
命令查询时,存在 uid、gid、groups信息,但是在 /home
下没有用户文件目录,如果还想创建这个名称的用户时,需要先删除用户,使用以下命令:
shell
删除用户名为es的用户,根据你自己的用户名进行修改
userdel -r es
注意:删除完成后,再使用 adduser
命令去创建,不要用 useradd 去创建
如果你有任何疑问或经验分享,可以在评论区留言哦~~
不管在任何时候,我希望你永远不要害怕挑战,不要畏惧失败。每一个错误都是向成功迈出的一步,每一个挑战都是成长的机会,因为每一次的努力,都会使我们离梦想更近一点。只要你行动起来,任何时候都不算晚。最后,把座右铭送给大家:种一棵树最好的时间是10年前,其次就是现在,加油!共勉 💪。