neo4j ubuntu安装环境配置 python实例

Neo4j简介

建议参考我的另外一篇文章,更详细全面Neo4J Cypher neo4j-driver py2neo介绍与使用
Neo4j 是基于 Java 的图形数据库,运行 Neo4j 需要启动 JVM 进程,因此必须安装 Java SE 的 JDK。

Neo4j 应用程序有如下主要的目录结构:

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

接下来主要介绍在ubuntu下neo4j环境配置。

环境配置

jdk1.8安装

查看当前服务器是否有java环境

java -version

在这里插入图片描述
如果显示如上图,版本1.8就不用安装啦。

如果没有的话, 参考链接

Neo4j安装

在服务器上下载安装包

curl -O http://dist.neo4j.org/neo4j-community-3.4.5-unix.tar.gz

解压安装包

tar -axvf neo4j-community-3.4.5-unix.tar.gz

进入解压目录

cd neo4j-community-3.4.5-unix

修改配置文件

vim conf/neo4j.conf

在这里插入图片描述

以下引用自 https://blog.csdn.net/u013946356/article/details/81736232
修改了其中dbms.shell.host行号,亲测以下所有行号都是正确的。可以直接esc退出编辑模式,:linenumber直接定位到需要修改的行。

# 修改第22行load csv时l路径,在前面加个#,可从任意路径读取文件
#dbms.directories.import=import

# 修改35行和36行,设置JVM初始堆内存和JVM最大堆内存
# 生产环境给的JVM最大堆内存越大越好,但是要小于机器的物理内存
dbms.memory.heap.initial_size=5g
dbms.memory.heap.max_size=10g

# 修改46行,可以认为这个是缓存,如果机器配置高,这个越大越好
dbms.memory.pagecache.size=10g

# 修改54行,去掉改行的#,可以远程通过ip访问neo4j数据库
dbms.connectors.default_listen_address=0.0.0.0

# 默认 bolt端口是7687,http端口是7474,https关口是7473,不修改下面3项也可以
# 修改71行,去掉#,设置http端口为7687,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.bolt.listen_address=:7687

# 修改75行,去掉#,设置http端口为7474,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.http.listen_address=:7474

# 修改79行,去掉#,设置http端口为7473,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.https.listen_address=:7473

# 修改227行,去掉#,允许从远程url来load csv
dbms.security.allow_csv_import_from_file_urls=true

# 修改246行,允许使用neo4j-shell,类似于mysql 命令行之类的
dbms.shell.enabled=true

# 修改248行,去掉#,设置连接neo4j-shell的端口,一般都是localhost或者127.0.0.1,这样安全,其他地址的话,一般使用https就行
dbms.shell.host=127.0.0.1

# 修改250行,去掉#,设置neo4j-shell端口,端口可以自定义,只要不和其他端口冲突就行
dbms.shell.port=1337

# 修改254行,设置neo4j可读可写
dbms.read_only=false

启动、控制台、停止服务

bin/neo4j start
bin/neo4j console
bin/neo4j stop

密码

用户名neo4j
默认密码neo4j

命令行修改默认密码

进入cypher-shell命令行

bin/cypher-shell

修改默认密码

CALL dbms changePassword('newneo4j');

推出cypher-shell命令行

:exit;

neo4j和neo4j-driver安装

pip install neo4j neo4j-driver==1.7.6

这里必须指定neo4j-driver的版本,
参考链接:from error neo4j.exceptions.ServiceUnavailable: The Neo4J server does not support
communication with this driver. This driver have support for Bolt
Protocols dict_keys([Version(3, 0), Version(4, 0)])

否则就会报错如下:

raise ServiceUnavailable(str(error)) from error
neo4j.exceptions.ServiceUnavailable: 
The Neo4J server does not support communication with this driver. 
This driver have support for Bolt Protocols dict_keys([Version(3, 0), Version(4, 0), Version(4, 1)])

python实例


# step 1:导入 Neo4j 驱动包
from neo4j import GraphDatabase
# step 2:连接 Neo4j 图数据库
driver = GraphDatabase.driver("bolt://127.0.0.1:7687", auth=("neo4j", "newneo4j"))
# driver = GraphDatabase.driver("http://127.0.0.1:7474", auth=("neo4j", "neo4j"))

# 添加 关系 函数
def add_friend(tx, name, friend_name):
    tx.run("MERGE (a:Person {name: $name}) "
        "MERGE (a)-[:KNOWS]->(friend:Person {name: $friend_name})",
        name=name, friend_name=friend_name)
# 定义 关系函数
def print_friends(tx, name):
    for record in tx.run("MATCH (a:Person)-[:KNOWS]->(friend) WHERE a.name = $name "
                        "RETURN friend.name ORDER BY friend.name", name=name):
        print(record["friend.name"])

# step 3:运行
with driver.session() as session:
    session.write_transaction(add_friend, "Arthur", "Guinevere")
    session.write_transaction(add_friend, "Arthur", "Lancelot")
    session.write_transaction(add_friend, "Arthur", "Merlin")
    session.read_transaction(print_friends, "Arthur")
    

输出

Guinevere
Lancelot
Merlin

参考链接

  1. jdk1.8 ubuntu安装
  2. neo4j介绍
  3. neo4j ubuntu环境配置

猜你喜欢

转载自blog.csdn.net/qq_32507417/article/details/112403721