# Neo4j 本地部署指南 ## 1. 系统要求 ### 硬件要求 - **CPU**: Intel/AMD x86-64 或 ARM - **内存**: 最低 2GB,推荐 16GB+ - **存储**: 最低 10GB,推荐 SSD ### 软件要求 - **操作系统**: Ubuntu 22.04/24.04, Debian 11-13, RHEL 8.x/9.x, CentOS 等 - **Java**: Java 21 或更高版本 --- ## 2. 安装方法 ### 方法 A: Debian/Ubuntu 系统(推荐) #### 步骤 1: 安装 Java 21 ```bash # 检查是否已安装 Java java -version # 如果没有,安装 OpenJDK 21 sudo apt update sudo apt install openjdk-21-jdk -y # 验证安装 java -version ``` #### 步骤 2: 添加 Neo4j 仓库 ```bash # 创建密钥目录 sudo mkdir -p /etc/apt/keyrings # 添加 GPG 密钥 wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/neotechnology.gpg sudo chmod a+r /etc/apt/keyrings/neotechnology.gpg # 添加仓库 echo 'deb [signed-by=/etc/apt/keyrings/neotechnology.gpg] https://debian.neo4j.com stable latest' | sudo tee /etc/apt/sources.list.d/neo4j.list # 更新包列表 sudo apt update ``` #### 步骤 3: 安装 Neo4j ```bash # 安装 Neo4j Community Edition(免费) sudo apt install neo4j -y # 或者指定版本 # sudo apt install neo4j=1:5.15.0 -y ``` #### 步骤 4: 配置并启动服务 ```bash # 设置初始密码(替换 your-password) sudo neo4j-admin dbms set-initial-password your-password # 启用开机自启 sudo systemctl enable neo4j # 启动服务 sudo systemctl start neo4j # 查看状态 sudo systemctl status neo4j ``` --- ### 方法 B: Tarball 安装(更灵活) #### 步骤 1: 下载并解压 ```bash # 下载 Neo4j Community Edition wget https://neo4j.com/artifact.php?name=neo4j-community-5.15.0-unix.tar.gz -O neo4j-community-5.15.0-unix.tar.gz # 解压 tar -xzf neo4j-community-5.15.0-unix.tar.gz # 移动到 /opt sudo mv neo4j-community-5.15.0 /opt/neo4j ``` #### 步骤 2: 创建用户和设置权限 ```bash # 创建 neo4j 用户 sudo useradd -r -s /bin/false neo4j # 设置目录权限 sudo chown -R neo4j:neo4j /opt/neo4j ``` #### 步骤 3: 配置环境变量 ```bash # 添加到 ~/.bashrc 或 /etc/profile export NEO4J_HOME=/opt/neo4j export PATH=$NEO4J_HOME/bin:$PATH ``` #### 步骤 4: 创建 systemd 服务 ```bash sudo tee /etc/systemd/system/neo4j.service > /dev/null <() RETURN count(r); -- 查看节点标签统计 MATCH (n) RETURN labels(n), count(*) ORDER BY count(*) DESC; -- 查看关系类型统计 MATCH ()-[r]->() RETURN type(r), count(*) ORDER BY count(*) DESC; -- 删除所有数据(谨慎使用!) MATCH (n) DETACH DELETE n; -- 查看某文档的所有节点 MATCH (n {documentId: 'your-doc-id'}) RETURN n; -- 查看某节点的所有关系 MATCH (n {id: 'your-node-id'})-[r]-(m) RETURN n, r, m; ``` --- ## 8. 故障排查 ### 问题 1: 服务启动失败 ```bash # 查看详细错误 sudo journalctl -u neo4j --no-pager -n 50 # 检查端口占用 sudo netstat -tlnp | grep 7687 sudo netstat -tlnp | grep 7474 ``` ### 问题 2: 连接被拒绝 1. 检查服务是否运行: `sudo systemctl status neo4j` 2. 检查防火墙: `sudo ufw status` 3. 检查配置文件中的 `listen_address` ### 问题 3: 内存不足 修改 `neo4j.conf` 降低内存配置: ```properties server.memory.heap.initial_size=256m server.memory.heap.max_size=512m server.memory.pagecache.size=256m ``` ### 问题 4: 忘记密码 ```bash # 停止服务 sudo systemctl stop neo4j # 重置密码 sudo neo4j-admin dbms set-initial-password new-password --require-password-change=false # 启动服务 sudo systemctl start neo4j ``` --- ## 9. 生产环境建议 1. **使用强密码**: 不要使用默认密码 2. **限制访问**: 配置防火墙只允许应用服务器访问 3. **定期备份**: 使用 `neo4j-admin database dump` 备份数据 4. **监控**: 配置 Prometheus + Grafana 监控 5. **日志轮转**: 配置日志轮转避免磁盘占满