Neo4j-安装遇到的问题——填了个坑

爷,独闯天下 提交于 2020-02-14 17:55:27

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自己的问题?)
    1. 由于bashrc和bash_profile 的优先级高于/etc/profile 所以,就是说当只运行$JAVA_HOME 命令的时候会在bash_profile中先找,找到了就不在/etc/profile 中找,然后就无效了,当运行Javac、Java -version 的时候,由于其他配置在/etc/profile里面所以,就调用/etc/profile里面的配置(JAVA_HOME也就近找到了),语句这些命令就正常
  • 所以,自己摸索还是会不知觉给自己挖坑~~还得慢慢填

##### 最后

  • 最后,别忘了开安全组…没错,我忘了
    最后~
访问成功

访问成功

还有一个小坑
  • 7687端口,也要开,我在登陆的时候才发现的,初始密码是neo4j,进去要求会改。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!