Neo4j是一个图形化的数据库,可以很直观的看到各种数据之间的关系。
1、在Linux中安装Neo4j
可以在官网上下载需要的版本:https://neo4j.com/download/
我下载的是:neo4j-community-3.0.3-unix.tar.gz
保存到Linux中然后执行命令解压:tar -xzvf neo4j-community-3.0.3-unix.tar.gz
修改 /conf/ 的配置:
neo4j.conf:
#dbms.connector.bolt.address=0.0.0.0:7687
#dbms.connector.http.address=0.0.0.0:7474
去除注释符
dbms.connector.bolt.address=0.0.0.0:7687
dbms.connector.http.address=0.0.0.0:7474
neo4j-wrapper.conf:
#dbms.memory.heap.initial_size=512
#dbms.memory.heap.max_size=512
去除注释符,加大内存,修改为
dbms.memory.heap.initial_size=8192
dbms.memory.heap.max_size=16000
2、启动Neo4j
cd到bin目录下,执行启动命令:./neo4j start
另外neo4j还有其他命令,执行方式相同:neo4j { console | start | stop | restart | status }
注:启动的时候报了一个错:
ERROR! Neo4j cannot be started using java version 1.6.0_27.
* Please use Oracle(R) Java(TM) 8, OpenJDK(TM) or IBM J9 to run Neo4j Server.
* Please see http://docs.neo4j.org/ for Neo4j Server installation instructions.
Neo4j需要jdk 8以上才能运行,所以需要安装jdk 8
我的apt-get没有openjdk-8-jdk的包,所以使用了另外一个形式安装:
$aptitude search jdk
$aptitude show oracle-java8-jdk
$aptitude install oracle-java8-installer
安装完 jdk 8 后可以先试试看有没有使用 jdk 8 执行命令,我的仍然还是使用 jdk 6 执行,所以需要在/bin/neo4j中添加JAVA_HOME的路径,安装的 jdk 一般在/usr/lib/jvm/下,添加到注释行末尾即可:
JAVA_HOME=/usr/lib/jvm/java-8-oracle
执行命令启动:./neo4j start
返回数据,启动成功:
Starting Neo4j.
WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual.
Started neo4j (pid 18504). By default, it is available at http://localhost:7474/
There may be a short delay until the server is ready.
See /var/Neo4j/neo4j-community-3.0.3/logs/neo4j.log for current status.
浏览器登陆:http://localhost:7474/
登陆首次会让你输入用户名密码,默认为:neo4j/neo4j,然后就会让你重置密码。
然后就可以输入命令执行了。
3、使用shell命令执行neo4j命令
虽然浏览器执行命令可以很直观的看到需要的数据关系,但是因为浏览器的原因,会经常奔溃而且不会返回所有数据回来,所以使用shell命令执行就会快很多。
在 /bin/ 目录下有一个 neo4j-shell 文件,需要在neo4j启动的情况下才能使用,使用命令为:./neo4j-shell
注:与neo4j一样需要添加jdk8的JAVA_HOME到neo4j-shell文件里去
执行 ./neo4j-shell 命令后就会到 neo4j-sh (?)$ 中,在$后执行与浏览器相同的命令即可,返回的数据会直接打印到控制台中。
由于有时候数据量大,直接打印到控制台就会被刷屏,所以可以在执行 ./neo4j-shell 命令之前执行以下命令就可以输出数据到文件中保存:
$./neo4j-shell -file /var/Neo4j/test.cql > /var/Neo4j/result.txt
test.cql里保存的是需要执行的neo4j命令,result.txt用来保存返回的结果数据。
目前需要的命令只要这两种就足够了,所以没有继续研究下去,更多的命令可以到官网上查看。
neo4j-shell使用文档:http://neo4j.com/docs/stable/shell.html
注:
执行以上命令有时会报以下错误:
ERROR (-v for expanded information):
Connection refused
需要修改配置文件重启后生效:
# Enable a remote shell server which Neo4j Shell clients can log in to.
dbms.shell.enabled=true
# The network interface IP the shell will listen on (use 0.0.0.0 for all interfaces).
dbms.shell.host=0.0.0.0
# The port the shell will listen on, default is 1337.
dbms.shell.port=1337
主要是将三个注释标记“#”删除,并将host的127.0.0.1修改为0.0.0.0
本地操作的话只要将注释标记删除就可以,需要远程操作则需要修改host
一个还没有测试通过的远程命令:neo4j-shell.bat -host x.x.x.x -port 1337 -file xxx.cypher > result.txt