当前位置: 首页 > ai >正文

Mac Intel 芯片 Docker 一键部署 Neo4j 最新版本教程

🚀 Mac Intel 芯片 Docker 一键部署 Neo4j 最新版本教程

Neo4j 是一款领先的 图数据库,广泛应用于 社交网络分析、推荐系统、知识图谱 等场景。本文将手把手教你在 Mac Intel 芯片 上通过 Docker 部署最新版本 Neo4j,并附带一键启动脚本、数据持久化方案和 Python 示例连接代码。


📖 目录

  1. 前提条件

  2. 拉取 Neo4j Docker 镜像

  3. 编写一键管理脚本

  4. 使用脚本管理容器

  5. 常见问题与优化

  6. Neo4j Web 界面访问

  7. Python 示例连接 Neo4j

  8. 总结


1️⃣ 前提条件

  • 已安装 Docker Desktop for Mac (Intel 芯片) 并能正常运行

  • Docker 分配内存建议 ≥ 4GB

  • 基本命令行操作能力

检查 Docker 是否可用:

docker --version
docker info

2️⃣ 拉取 Neo4j Docker 镜像

执行以下命令拉取最新版本的 Neo4j:

docker pull neo4j:latest

默认端口说明:

  • 7474 → HTTP(Neo4j 浏览器界面)

  • 7687 → Bolt 协议(程序访问)


3️⃣ 编写一键管理脚本

为了方便使用,我们写一个 一键管理脚本,支持启动、停止、重启、删除和查看状态。

新建脚本文件:

nano neo4j-docker.sh

粘贴以下内容:

#!/bin/bash
# neo4j-docker.sh
# 一键管理 Neo4j Docker 容器 (Mac Intel)# === 配置项 ===
CONTAINER_NAME="neo4j"
NEO4J_USER="neo4j"
NEO4J_PASSWORD="Neo4j1234"  # ⚠️ 密码必须 >=8位 且包含字母+数字
HTTP_PORT=7474
BOLT_PORT=7687
DATA_DIR="$HOME/neo4j/data"# === 帮助信息 ===
function usage() {echo "用法: $0 [start|stop|restart|remove|status]"exit 1
}# === 启动容器 ===
function start() {mkdir -p "$DATA_DIR"chmod -R 777 "$DATA_DIR"docker run -d \--name $CONTAINER_NAME \-p $HTTP_PORT:7474 \-p $BOLT_PORT:7687 \-v $DATA_DIR:/data \-e NEO4J_AUTH=$NEO4J_USER/$NEO4J_PASSWORD \neo4j:latestecho "✅ Neo4j 启动完成 → http://localhost:$HTTP_PORT"
}# === 停止容器 ===
function stop() {docker stop $CONTAINER_NAMEecho "⏹️ Neo4j 已停止"
}# === 重启容器 ===
function restart() {stopstart
}# === 删除容器 ===
function remove() {docker rm -f $CONTAINER_NAMEecho "🗑️ Neo4j 容器已删除"
}# === 查看状态 ===
function status() {docker ps -a | grep $CONTAINER_NAME || echo "ℹ️ 容器不存在"
}# === 主入口 ===
case "$1" instart) start ;;stop) stop ;;restart) restart ;;remove) remove ;;status) status ;;*) usage ;;
esac

保存并退出。

赋予执行权限:

chmod +x neo4j-docker.sh

4️⃣ 使用脚本管理容器

启动 Neo4j:

./neo4j-docker.sh start

查看状态:

./neo4j-docker.sh status

停止容器:

./neo4j-docker.sh stop

删除容器:

./neo4j-docker.sh remove

实时查看日志:

docker logs -f neo4j

5️⃣ 常见问题与优化

  1. 容器启动即退出

    • 密码不符合 Neo4j 要求(必须 ≥8 位,包含字母和数字)

    • 本地挂载目录权限不足,解决:

      chmod -R 777 ~/neo4j/data
      
  2. 端口被占用
    修改脚本中的 HTTP_PORTBOLT_PORT,避免冲突。

  3. 数据持久化
    数据会保存在 $HOME/neo4j/data,即使容器删除也不会丢失。


6️⃣ Neo4j Web 界面访问

启动后,浏览器访问:

http://localhost:7474

默认用户名:neo4j
密码:脚本中设置的密码(例如 Neo4j1234

你可以在页面中执行 Cypher 查询,例如:

CREATE (p:Person {name: "Emilie"}) RETURN p;

7️⃣ Python 示例连接 Neo4j

如果你想用 Python 操作 Neo4j,可以使用 neo4j 官方驱动:

安装依赖:

pip install neo4j

示例代码:

from neo4j import GraphDatabase# 配置连接信息
uri = "bolt://localhost:7687"
user = "neo4j"
password = "Neo4j1234"driver = GraphDatabase.driver(uri, auth=(user, password))# 写入数据
def create_person(tx, name):tx.run("CREATE (p:Person {name: $name})", name=name)# 查询数据
def get_persons(tx):result = tx.run("MATCH (p:Person) RETURN p.name AS name")return [record["name"] for record in result]with driver.session() as session:session.write_transaction(create_person, "Alice")session.write_transaction(create_person, "Bob")persons = session.read_transaction(get_persons)print("✅ 数据库中的 Person 节点:", persons)driver.close()

运行后,你会在数据库中看到 AliceBob 两个节点。


8️⃣ 总结

本文介绍了如何在 Mac Intel 芯片 上通过 Docker 一键部署 Neo4j 最新版本,并提供了:

  • 📝 一键管理脚本(启动/停止/重启/删除/状态)

  • ⚡ 数据持久化和端口配置方法

  • 🐍 Python 驱动示例代码

这样你就可以快速上手 Neo4j,在本地构建自己的 图数据库应用 🚀。


👉 如果你也在用 Neo4j,可以在评论区分享你的应用场景,比如:知识图谱、推荐系统、社交分析等。

http://www.xdnf.cn/news/20217.html

相关文章:

  • 【Android 消息机制】Handler
  • PDF教程|如何把想要的网页保存下来?
  • docker 推送仓库(含搭建、代理等)
  • 服务器线程高占用定位方法
  • 使用 Shell 脚本监控服务器 IOWait 并发送邮件告警
  • Python带状态生成器完全指南:从基础到高并发系统设计
  • C#实现导入CSV数据到List<T>的完整教程
  • 【基础-单选】用哪一种装饰器修饰的struct表示该结构体具有组件化能力?
  • Playwright携手MCP:AI智能体实现自主化UI回归测试
  • 第26节:GPU加速计算与Compute Shader探索
  • Homebrew执行brew install出现错误(homebrew-bottles)
  • Go语言后端开发面试实战:谢飞机的“硬核”面试之旅
  • CodeBuddy 辅助重构:去掉 800 行 if-else 的状态机改造
  • Eclipse下的一些快捷键备忘录
  • LangChain实战(十九):集成OpenAI Functions打造强大Agent
  • Day37 MQTT协议 多客户端服务器模型
  • 手写MyBatis第53弹: @Intercepts与@Signature注解的工作原理
  • 工业洗地机和商用洗地机的区别是什么?
  • 【基础-单选】关于bundleName,下列说法正确的是?
  • 波特率vs比特率
  • rh134第三章复习总结
  • 贪心算法应用:保险理赔调度问题详解
  • Java中的死锁
  • 使用 MongoDB.Driver 在 C# .NETCore 中实现 Mongo DB 过滤器
  • [数据结构] ArrayList(顺序表)与LinkedList(链表)
  • 万代《宝可梦》主题新品扭蛋公开!史上最大尺寸
  • 机器人控制器开发(传感器层——奥比大白相机适配)
  • 【FastDDS】Layer Transport ( 05-Shared Memory Transport)
  • 天气预报云服务器部署实战
  • 在Java AI项目中实现Function Call功能