Ubuntu系统neo4j的安装与使用

Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM进程,因此必须安装JAVA SE的JDK
可以从Oracle官方网站下载
https://www.oracle.com/java/technologies/downloads/
注意一下Neo4j和Java版本的对应关系,如果服务器上已经有JDK,通过java -version查看一下版本,如果是1.8.xx的版本,下载Neo4j 3.xx的版本。Neo4j 4.xx的版本需要jdk的version是11。

安装

1、下载community版本,解压
https://neo4j.com/download-center/#community

2、修改neo4j.conf下的配置文件
Neo4j支持三种网络协议(Protocol),分别是Bolt,HTTP和HTTPS,默认的连接器配置有三种,为了使用这三个端口,需要在Windows防火墙中创建Inbound Rules,允许通过端口7687,7474和7473访问本机。

23行 dbms.directories.import=import  可从任意路径读取文件
71行 dbms.default_listen_address=0.0.0.0   可以远程通过ip访问neo4j数据库
92行 dbms.connector.bolt.listen_address=:7687   开启bolt服务
97行 dbms.connector.http.listen_address=:7474   开启http服务
102行 dbms.connector.https.listen_address=:7473    开启https服务
230行 dbms.security.allow_csv_import_from_file_urls=true       允许从远程url来load csv

设置默认的网络监听的IP地址,该默认地址用于设置三个网络协议(Bolt,HTTP和HTTPs)的监听地址,即设置网络协议的属性:listen_address地址。在默认情况下,Neo4j只允许本地主机(localhost)访问,要想通过网络远程访问Neo4j数据库,需要修改监听地址为 0.0.0.0,这样设置之后,就能允许远程主机的访问。

# With default configuration Neo4j only accepts local connections.
# To accept non-local connections, uncomment this line:
dbms.connectors.default_listen_address=0.0.0.0

3、配置.bashrc中的环境变量
java -version命令如果能成功运行,说明JDK是没有问题的
低版本需要添加/jre,高版本没有jre,所以用JAVA_HOME替换
这两块配置环境变量的代码是我在网络上找的,不一定正确

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export JAVA_HOME=/home/simon/programs/jdk-16.0.1
export JRE_HOME=${JAVA_HOME}   #低版本需要添加/jre,高版本没有jre,所以用JAVA_HOME替换
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
JRE_HOME=JAVA_HOME/jre #注意 jdk10解压后是没有jre目录的所以这里直接配成JAVA_HOME/jre 

4、启动 Neo4j
neo4j-community的bin目录下进入终端输入:

./neo4j console

5、web端进入 http://localhost:7474/
默认用户名“neo4j”和密码“neo4j” ,需要修改密码


bin目录:用于存储Neo4j的可执行程序
conf目录:用于控制Neo4j启动的配置文件
data目录:用于存储核心数据库文件
plugins目录:用于存储Neo4j的插件

核心数据文件存储的位置,默认是在data/graph.db目录中,要改变默认的存储目录,可以更新conf中neo4j.conf文件的配置选项:

# The name of the database to mount
#dbms.active_database=graph.db

补充一些命令:
启动服务,停止服务,重启服务和查询服务的状态:

bin\neo4j start
bin\neo4j stop
bin\neo4j restart
bin\neo4j status

数据导入

neo4j-admin import导入批量数据
1、neo4j中的数据主要分为节点数据和关系数据,csv文件也分为节点文件和关系文件。
当系统要导入csv文件的时候,读取文件的第一行必需是数据域信息,用来表示该文件中各列的具体意思
(1)csv节点文件:必须要包含的是ID域(:ID),用来表示节点的id信息,ID域中的信息必需是全局唯一的,:LABEL是可选项,用来对节点来进行标记,当一个节点有多个标签的时候

     id:ID               name             :LABEL
0      1  <美国奥可斯(香港)国际控股集团>     Entity
1      2             <文学作品>            Entity
2      3               <文化>     	      Entity
3      4             <寻美中国>            Entity
4      5               <品牌>             Entity
5      6      <青春是我和你一杯酒的深>       Entity
6      7             <网络小说> 			 Entity
7      8             <小说作品>            Entity
8      9               <小说>             Entity
9     10             <娱乐作品>            Entity

(2)csv关系文件:必须要包含的是(:START_ID),(:END_ID),(:TYPE)分别用来表示关系的 开始节点id, 结束节点id, 关系类型。

   :START_ID  :END_ID     :TYPE  name
0          1        2  Relation  <类型>
1          1        3  Relation  <类型>
2          4        5  Relation  <类型>
3          6        2  Relation  <类型>
4          6        7  Relation  <类型>
5          6        8  Relation  <类型>
6          6        9  Relation  <类型>
7          6       10  Relation  <类型>
8          6       11  Relation  <类型>
9          6       12  Relation  <类型>

csv文件推荐是utf-8编码,否则会造成中文乱码
csv文件默认需要放在import目录下,如需从远程或者其他本地目录导入,则需要修改conf/neo4j.conf配置文件

# load csv时文件路径。默认需要放在${NEO4J_HOME}/import目录下
# 注释后可从任意路径读取文件,也可以指定其他路径。
dbms.directories.import=import
 
# 是否允许从远程url来load csv。默认不可以
#dbms.security.allow_csv_import_from_file_urls=true

2、将数据导入到数据库中
导入数据的具体命令如下:

   neo4j-admin import [--mode=csv] [--database=<name>]

                            [--additional-config=<config-file-path>]

                            [--report-file=<filename>]

                            [--nodes[:Label1:Label2]=<"file1,file2,...">]

                            [--relationships[:RELATIONSHIP_TYPE]=<"file1,file2,...">]

                            [--id-type=<STRING|INTEGER|ACTUAL>]

                            [--input-encoding=<character-set>]

                            [--ignore-extra-columns[=<true|false>]]

                            [--ignore-duplicate-nodes[=<true|false>]]

                            [--ignore-missing-nodes[=<true|false>]]

                            [--multiline-fields[=<true|false>]]

                            [--delimiter=<delimiter-character>]

                            [--array-delimiter=<array-delimiter-character>]

                            [--quote=<quotation-character>]

                            [--max-memory=<max-memory-that-importer-can-use>]

                            [--f=<File containing all arguments to this import>]

                            [--high-io=<true/false>]

--database=graph.db表示建立的数据库的名字为graph.db,这里需要注意,graph.db必需为全新的,如果该库已经存在的情况下,会无法导入。

--nodes表示导入的节点文件,当有多个导入文件的时候,使用,来进行隔开,当如果头文件是单独文件的时候,必需将其放在内容文件的前面,否则会无法导入。

---relationships表示导入的关系文件,当有多个关系文件导入的时候,使用,来进行隔开,当如果头文件是单独文件的时候,必需将其放在内容文件的前面,否则会无法导入。

--multiline-fields=true表示如果某属性中的数据内容有多行时,可以成功导入。

在neo4j的文件夹下~/neo4j-community-4.4.10$进入终端输入

./bin/neo4j-admin import --database=graph01.db --nodes=import/node.csv --relationships=import/relation.csv --multiline-fields=true

参考链接:
https://blog.csdn.net/sinat_36226553/article/details/108541370 系列
https://www.cnblogs.com/jpfss/p/10874303.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值