首页>软件资讯>常见问题

常见问题

简单快速入手Neo4j

发布时间:2026-03-06 09:18:23人气:2


既然要快速入手,先从安装说起

注意要安装的版本否则启动会报错,找对应的版本进行下载安装。

本人是安装neo4j-community-3.4.7-windows.zip版本,如有需要可以微信联系作者获取

版本信息说明:


Neo4j 3.x 版本支持JDK1.8

Neo4j 4.x 版本支持JDK11

✅ 第一步:解压到纯英文目录(最重要)


不要直接解压到桌面,不要放进带空格的文件夹(如Program Files),不要有中文路径。


✅正确示例






D:\neo4j\neo4j-community-3.4.7C:\neo4j\347


❌错误示例






C:\Users\张三\Desktop\图数据库D:\Program Files\neo4j


解压密码?(不需要,zip 是明文包,双击就能打开)


✅ 第二步:确认 JDK 8 已生效


这是 3.x 版本唯一的硬门槛,必须用 Java 1.8。


按Win + R,输入cmd回车


在CMD命令行里输入:




java -version


必须显示 1.8.0_xxx


正确例子:




java version "1.8.0_201"

❌ 错误例子:



11.0.18、17.0.6


如果版本不对,不要往下走,先去 Oracle JDK 8 下载页 安装


✅ 第三步:首次启动(必须用 console 模式)


绝对不要双击bin/neo4j.exe,那个不会显示报错,失败都不知道原因。


进入你解压好的文件夹,地址栏里直接输入cmd然后回车


在黑窗口里输入,然后回车:




bin\neo4j.bat console

2.你会看到一大串日志滚动,等它停住不动,出现:



Started.Remote interface available at http://localhost:7474/

说明启动成功。


✅ 第四步:访问浏览器界面,打开 Chrome / Edge,访问




http://localhost:7474


默认账号密码:


用户名:neo4j  密码:neo4j


第一次登录必须改密码,输入两遍新密码即可。


看到类似这样的界面,大功告成:


图片


❗ 如果启动失败(看这里)


情况1:报错 “Java not found” 或 “JAVA_HOME is not set”


➜ 你没装 JDK 8,或者系统没认到。


解决方法:


安装 JDK 8


添加环境变量JAVA_HOME=C:\Program Files\Java\jdk1.8.0_201(改成你的实际路径)


把%JAVA_HOME%\bin加到Path变量


情况2:报错 “Failed to start Neo4j” 但没具体原因


➜ 最常见是端口被占用。7474 或 7687 已经被别的程序占了。


解决方法:


关掉微信、QQ、Oracle、MySQL 等占用端口的程序


或者修改conf/neo4j.conf,把这两行前面的#去掉并改端口:




dbms.connector.bolt.listen_address=:7688dbms.connector.http.listen_address=:7475


情况3:黑窗口一闪而过


➜ 直接双击了neo4j.exe,没有用 console 模式。


解决方法:回到第三步,必须用bin\neo4j.bat console启动才能看到错误日志。


✅ 日常启动/停止(以后就用这两句)

日常启动停止.png

安装完成,下面就来快速入手Cypher命令       1.create:创建图数据中的节点,简单说如果接触过SQL语句和Insert类似    举例:create (e:Employee{id:666, name:'张三' ,salary:5500 ,deptnp:6}),正常执行应该可以创建第一个节点2.match:匹配(查询)已有数据,简单说如果接触过SQL语句和Select类似    举例:MATCH (e:Employee) RETURN e.id, e.name, e.salary, e.deptnp    也可以:MATCH (n) return n    ,这里是查询出所有节点3.merge:若节点存在,则不操作;节点不存在,则等效于create命令。举例:MERGE (e:Employee{id:666, name:'张三' ,salary:5500 ,deptnp:6})不会创建新的节点。但如果其中修改某一个属性,还是可以新增新的节点4.create/merge:可以创建有/无方向的关系举例:创建公司节点create (n:Conpany {name:'a公司',opYear:'2'}) return n创建技术部和行政部的两个节点create(n:Department{name:'技术部',nos:'001'}),(m:Department{name:'行政部',nos:'002'}) return n,m

分别执行下面两条命令,将公司和技术部/行政部创建关系match(a:Conpany),(b:Department) where a.name='a公司' and b.name='技术部' create (a)-[r:归属]->(b) return r;match(a:Conpany),(b:Department) where a.name='a公司' and b.name='行政部' create (a)-[r:归属]->(b) return r;

5.where命令:条件查询举例:MATCH (e:Employee) WHERE e.id=666 RETURN e

6.delete命令:删除节点/关系及其关联属性举例:修改公司和部门的关系,改变之前关系方向match(:Conpany{name:'a公司'})-[r]->(:Department{name:'行政部'}) delete rmatch(:Conpany{name:'a公司'})-[r]->(:Department{name:'技术部'}) delete r

删除后重新创建关系match(a:Conpany),(b:Department) where a.name='a公司' and b.name='技术部' create (b)-[r:归属]->(a) return r再执行命令match(a:Conpany),(b:Department) where a.name='a公司' and b.name='行政部' create (b)-[r:归属]->(a) return r

7. 输入命令框中:可修改用户的默认登录密码 :server change-password 最后一步,通过Python操作Neo4j省去废话,省去大道理,直接上真东西#python代码如下from neo4j import GraphDatabasefrom common.config import Configfrom tqdm import tqdmimport jsonconf = Config()

class Neo4jClient:      def __init__(self, uri, user, password):            """初始化连接"""             self.driver = GraphDatabase.driver(uri, auth=(user, password))        def __del__(self):              """关闭连接"""              if self.driver is not None:                  print("关闭链接")                  self.driver.close()        def run_cypher(self, query, parameters=None):              """执行一条Cypher语句并返回结果query:  Cypher 查询语句       parameters: 可选参数字典        return: 查询结果列表(每一行是一个dict)"""              with self.driver.session() as session:                      result = session.run(query, parameters or {})           return [record.data() for record in result]                def run_multiple_cypher(self, queries_with_params):               """执行多条 Cypher语句,使用事物,显示进度条        queries_with_params: List[Tuple[str, Dict]]        """       with self.driver.session() as session:               def transaction_login(tx):                       for query, params in tqdm(queries_with_params, desc="执行Cypher语句"):                             tx.run(query, params or {})               session.write_transaction(transaction_login)

 #neof4地址,用户名,密码 创建客户端        neo4j_client = Neo4jClient("bolt://localhost:7687", "neo4j", "123456")         if __name__ == '__main__':      #测试插入一条数据 neo4j_client.run_cypher("create ( :Employee{name:'张壮', salary:6000})") #neo4j_client.run_multiple_cypher([("create ( :Employee{name:$name, salary:$salary})", {"name": "王五", "salary": 6100}),("create ( :Employee{name:$name, salary:$salary})",{"name": "赵六", "salary": 6200})]) 



上一条:Neo4j图数据库解析

下一条:Neo4j是什么