neo4j 環境配置
- Neo4j簡介
- 環境配置
- jdk1.8安裝
- Neo4j安裝
- 在服務器上下載安裝包
- 解壓安裝包
- 進入解壓目錄
- 修改組態檔
- 啟動、控制臺、停止服務
- 密碼
- 命令列修改默認密碼
- neo4j和neo4j-driver安裝
- python實體
- 參考鏈接
Neo4j簡介
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
參考鏈接
- jdk1.8 ubuntu安裝
- neo4j介紹
- neo4j ubuntu環境配置
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/246971.html
標籤:其他
