Neo4j-安装遇到的问题——填了个坑
Neo4j :基于Java的图形数据库
- 照着教程安装,一切正常后
- 在启动的时候出现一下的错误:
ERROR: JAVA_HOME is incorrectly defined as /usr/java/jdk1.8.0_211 (the executable /usr/java/jdk1.8.0_211/bin/java does not exist)
- 说是找不到JAVA_HOME 定义的地方,我就纳闷了,我的JAVA_HOME 根本不在这,它是怎么找到这个地址的
//JAVA_HOME地址
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_211
把问题搁在这,先去研究一下
解决尝试
- 找了一圈,决定从JAVA_HOME开始找起(我大概率确定安装我没啥问题)
- 首先,Jdk,有,1.8,满足
(base) [root@izuf62e1aik19tck77y9qwz bin]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) Client VM (build 25.211-b12, mixed mode)
- 接着$JAVA_HOME,问题所在了
(base) [root@izuf62e1aik19tck77y9qwz conf]# $JAVA_HOME
-bash: /usr/java/jdk1.8.0_211: No such file or directory
- 找到的位置是一个错误的位置
思路
- 环境变量有两个文件可以放:
/etc/profile
~/.bashrc
- 而我的习惯是放在/etc/profile这里~
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$MAVEN_HOME/bin:$PATH
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_211
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-
这个地址是没有问题的,而我的.bashrc里面实际上找不到有关于jdk的配置(只有自动生成的anaconda和texlive配置)
-
看到一篇关于JAVA_HOME的博文:传送门
-
里面有句比较重要的话:一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取/.bash_profile文件,这样/.bashrc也就得到执行了,你的个性化设置也就生效。
-
一开始我理解成会调用.bashrc文件中的配置(没看清),所以按照它的方法,在.bashrc中加了一行JAVA_HOME配置,结果就好玩了
(base) [root@izuf62e1aik19tck77y9qwz jdk1.8.0_211]# $JAVA_HOME
-bash: /usr/java/jdk/jdk1.8.0_211:/usr/java/jdk1.8.0_211: No such file or directory
- 没错,这俩货叠加了,叠加了。。。。。
- 那就有意思了/etc/profile 里面的配置根本不是这个,事实上根本没调用/etc/profile里面的JAVA_HOME配置(别的用了),也就是说,就算我/etc/profile里面配置写对了,他不调用,白搭。
正解
- 再贴一下这句话:
- 一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取/.bash_profile文件,这样/.bashrc也就得到执行了,你的个性化设置也就生效。
- bash 调用的是.bash_profile这个文件,而.bash_profile才显示调用.bashrc,于是我抱着试试看的心态打开了.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export JAVA_HOME=/usr/java/jdk1.8.0_211
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
- 这,就是祸根
- 这是我的第一台服务器,装机的时候略显稚嫩,很多配置写的有点毛病,这不,在.bash_profile里面又发现一个,如果不是这次装neo4j我估计到重置都不会意识到这里配错了~
- 就吧这里的JAVA_HOME 配置注释掉就好了
##### 捋一捋逻辑
- 1.在.bash_profile中配置了一个错误的JAVA_HOME 路径名,于是当bash调用的时候访问的是.bash_profile中的内容(.bashrc被显示调用进来了),这就导致了我的路径是那个错误的地址
- 2.在.bashrc中配置JAVA_HOME以后,路径叠加问题(这点其实我不太理解,为啥会叠加,按道理显示调用不是会采用其中一个,就是只有一个显示~),而我在多次source之后,就不会出现叠加的问题(是bash自己的问题?)
- 由于bashrc和bash_profile 的优先级高于/etc/profile 所以,就是说当只运行$JAVA_HOME 命令的时候会在bash_profile中先找,找到了就不在/etc/profile 中找,然后就无效了,当运行Javac、Java -version 的时候,由于其他配置在/etc/profile里面所以,就调用/etc/profile里面的配置(JAVA_HOME也就近找到了),语句这些命令就正常
- 所以,自己摸索还是会不知觉给自己挖坑~~还得慢慢填
##### 最后
- 最后,别忘了开安全组…没错,我忘了
访问成功
还有一个小坑
- 7687端口,也要开,我在登陆的时候才发现的,初始密码是neo4j,进去要求会改。
来源:CSDN
作者:椰子奶糖
链接:https://blog.csdn.net/symuamua/article/details/104311097