如何将嵌入式Neo4j 3.3.5通过Neo4j Desktop作为远程数据库访问
怎么让嵌入式Neo4j 3.3.5支持Neo4j Desktop远程访问
嘿,我来帮你搞定这个需求!要让你的嵌入式Neo4j能被Neo4j Desktop远程连接,核心是给嵌入式库开启Bolt连接器(Neo4j的远程通信协议),然后在Desktop里配置连接信息就行。下面是一步步的操作:
1. 修改Spring Boot项目的Neo4j初始化代码
原来的代码只是单纯启动嵌入式数据库,没有开启远程访问的配置。你需要添加Neo4j的配置参数,启用Bolt连接器:
import org.neo4j.graphdb.GraphDatabaseService import org.neo4j.graphdb.factory.GraphDatabaseFactory import org.neo4j.kernel.configuration.Config import java.io.File import javax.annotation.PreDestroy // 你的类内代码 private val curdir = System.getProperty("user.dir") // 配置远程连接参数 val neo4jConfig = Config.builder() // 启用Bolt连接器(必须开启才能远程访问) .set("dbms.connector.bolt.enabled", "true") // 设置Bolt监听地址和端口,默认是localhost:7687 .set("dbms.connector.bolt.listen_address", "localhost:7687") // 测试阶段先关闭认证,后续可开启(默认是开启状态) .set("dbms.security.auth.enabled", "false") .build() // 用带配置的方式初始化嵌入式数据库 val graphDb: GraphDatabaseService = GraphDatabaseFactory() .newEmbeddedDatabaseBuilder(File("${curdir}/database")) .setConfig(neo4jConfig) .newGraphDatabase() // 项目关闭时务必关闭数据库,避免文件损坏 @PreDestroy fun shutdownNeo4j() { graphDb.shutdown() }
关键参数说明:
dbms.connector.bolt.enabled: 必须设为true,开启远程连接的Bolt协议支持dbms.connector.bolt.listen_address: 指定监听的IP和端口,默认localhost:7687,如果端口被占用可以改成其他值(比如7688)dbms.security.auth.enabled: 暂时关闭认证方便测试,之后可以改成true,并设置默认用户名neo4j的密码(第一次启动会提示设置,也能通过dbms.security.auth_initial_password参数预先配置)
2. 启动你的Spring Boot项目
确保项目正常启动,没有报错。可以检查日志里有没有类似Bolt connector enabled on localhost:7687的信息,确认Bolt连接器已经成功启动。
3. 在Neo4j Desktop 1.0.24里配置远程连接
打开Neo4j Desktop,按照以下步骤操作:
- 点击左侧菜单栏的
Add按钮,选择Remote Connection - 在弹出的配置窗口里填写:
- Name: 给这个连接起个好记的名字(比如“我的嵌入式Neo4j”)
- URI: 填写
bolt://localhost:7687(如果刚才改了端口,就对应改成新的端口) - User / Password: 如果刚才关闭了认证,这两项可以留空;如果开启了认证,就填
neo4j和你设置的密码
- 点击
Connect,如果配置正确,就能成功连接到你的嵌入式数据库了!
4. 验证和使用
连接成功后,你可以:
- 点击
Open打开Neo4j Browser,在里面运行Cypher查询查看节点关系 - 直接在Browser里用Cypher语句添加新节点(比如
CREATE (n:TestNode {name: '新节点'}) RETURN n) - 用可视化界面拖拽查看数据库的节点和关系
注意事项
- 版本兼容性: 你的Neo4j Desktop 1.0.24和嵌入式Neo4j 3.3.5版本匹配,不用担心协议不兼容的问题
- 端口占用: 如果启动项目时提示7687端口被占用,可以换个端口(比如7688),同时修改代码里的
listen_address和Desktop里的URI - 数据库路径: 确认
System.getProperty("user.dir")指向的是正确的目录,确保数据库文件存在。可以打印curdir的值来验证:println("数据库路径:${curdir}/database") - 数据库关闭: 一定要在Spring Boot关闭时调用
graphDb.shutdown(),否则可能导致数据库文件损坏
内容的提问来源于stack exchange,提问作者pbount
相关产品推荐
相关产品推荐

