从零到一:在Windows系统上部署JDK11与Neo4j 4.3.5开发环境
1. 环境准备JDK11与Neo4j 4.3.5的版本选择刚开始接触Java和图数据库时我踩过不少版本不兼容的坑。比如有一次装了最新版JDK17结果Neo4j死活启动不了折腾半天才发现是版本冲突。所以现在每次搭建环境我都会先确认好组件之间的兼容性。对于初学者来说JDK11Neo4j 4.3.5这个组合最稳当社区资源丰富遇到问题也容易找到解决方案。为什么推荐这个组合首先Neo4j 4.3.5是长期支持版本LTS官方维护周期长bug修复及时。其次它对JDK11的适配性经过大量开发者验证我经手过的十几个项目都没出过兼容性问题。另外JDK11本身也是Java的LTS版本比新版更稳定比旧版性能更好属于甜点级选择。准备安装包时要注意JDK11建议选Oracle官方版本jdk-11.x.x_windows-x64_bin.zipNeo4j 4.3.5社区版neo4j-community-4.3.5-windows.zip存放路径不要有中文或空格我习惯放在D:\dev_tools下有个小技巧下载Oracle JDK需要账号时可以到技术论坛找共享账号。不过最近发现更简单的方法——直接使用Azul Zulu JDK这是OpenJDK的发行版完全免费且不需要登录。实测和Neo4j配合使用没有任何问题。2. JDK11安装与配置详解2.1 安装包下载与解压第一次装JDK时我在官网迷路了半小时。后来发现捷径直接搜索Oracle JDK archive能找到所有历史版本。下载时注意选Windows x64的压缩包约160MB别下成安装器版本后者会有自动更新干扰。解压时建议遵循以下规范路径D:\dev_tools ├── jdk-11.0.20 └── neo4j-community-4.3.5我见过有人直接解压到C盘根目录结果系统重装时配置全丢。更糟的是放在Program Files里路径中的空格会导致某些脚本报错。2.2 环境变量配置实战配置环境变量是新手最容易翻车的地方。去年带实习生时10个人里有6个卡在这步。关键要设置两个变量JAVA_HOME指向JDK根目录变量名JAVA_HOME变量值D:\dev_tools\jdk-11.0.20Path添加JDK的bin目录新增条目%JAVA_HOME%\bin这里有个常见误区很多人会在Path里直接写完整路径。用%JAVA_HOME%引用更灵活以后升级JDK只需改一处。配置完成后一定要开新的CMD窗口测试java -version如果看到类似下面的输出说明配置成功java version 11.0.20 2023-07-18 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.208-LTS-256) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.208-LTS-256, mixed mode)3. Neo4j 4.3.5安装全流程3.1 获取与部署社区版Neo4j官方下载页默认展示最新版找历史版本需要点技巧。我常用的方法是在浏览器地址栏直接修改版本号https://neo4j.com/download-center/#releases进入后搜索4.3.5选择Windows版的ZIP包。下载速度慢的话可以尝试镜像站点比如国内的技术博客经常提供备用下载链接。解压时要注意Neo4j会在同级目录创建data文件夹存放数据库文件。所以建议单独建立目录结构D:\dev_tools\neo4j-community-4.3.5 ├── bin ├── conf ├── data # 自动生成 └── ...我曾把Neo4j解压到临时目录结果清理文件时误删了项目数据血的教训啊3.2 环境变量与服务启动和JDK类似需要设置NEO4J_HOME变量变量名NEO4J_HOME变量值D:\dev_tools\neo4j-community-4.3.5Path添加%NEO4J_HOME%\bin启动服务时推荐先用控制台模式验证neo4j.bat console看到以下输出说明服务已正常启动2023-08-15 14:20:35.1230000 INFO Bolt enabled on 0.0.0.0:7687.这时打开浏览器访问http://localhost:7474初始账号密码都是neo4j。首次登录会强制修改密码建议使用密码管理器保存。3.3 常见问题排查上周帮同事调试时遇到典型问题服务启动后无法访问7474端口。排查步骤分享给大家检查端口占用netstat -ano | findstr 7474修改配置文件 打开conf/neo4j.conf取消注释并修改dbms.connector.bolt.listen_address0.0.0.0:7687 dbms.connector.http.listen_address0.0.0.0:7474防火墙放行netsh advfirewall firewall add rule nameNeo4j HTTP dirin actionallow protocolTCP localport74744. 初识CypherNeo4j实战入门4.1 节点与关系的创建第一次用Cypher语言时我被它的简洁惊艳到了。比如创建成龙节点CREATE (:Person {name:成龙, birth_year:1954})比SQL直观多了就像在画图。创建关系更有趣比如建立洪金宝→成龙的师徒关系MATCH (a:Person {name:洪金宝}), (b:Person {name:成龙}) CREATE (a)-[:师父]-(b)注意箭头方向决定关系指向这个设计让数据可视化特别清晰。4.2 实用查询技巧查询所有师徒关系MATCH (a)-[r:师父]-(b) RETURN a.name, b.name加上WHERE条件筛选MATCH (p:Person) WHERE p.birth_year 1960 RETURN p.name有个性能优化技巧给常用查询字段创建索引CREATE INDEX ON :Person(name)4.3 数据备份与恢复开发时经常需要备份测试数据Neo4j提供了简单命令# 备份 neo4j-admin dump --databaseneo4j --tobackup.dump # 恢复 neo4j-admin load --frombackup.dump --databaseneo4j --force建议定期备份特别是学习复杂图算法时。有次我误删了1000多个节点还好有前一天备份。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2459367.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!