# 检查是否已安装 Java
java -version
# 如果没有,安装 OpenJDK 21
sudo apt update
sudo apt install openjdk-21-jdk -y
# 验证安装
java -version
# 创建密钥目录
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
# 安装 Neo4j Community Edition(免费)
sudo apt install neo4j -y
# 或者指定版本
# sudo apt install neo4j=1:5.15.0 -y
# 设置初始密码(替换 your-password)
sudo neo4j-admin dbms set-initial-password your-password
# 启用开机自启
sudo systemctl enable neo4j
# 启动服务
sudo systemctl start neo4j
# 查看状态
sudo systemctl status neo4j
# 下载 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
# 创建 neo4j 用户
sudo useradd -r -s /bin/false neo4j
# 设置目录权限
sudo chown -R neo4j:neo4j /opt/neo4j
# 添加到 ~/.bashrc 或 /etc/profile
export NEO4J_HOME=/opt/neo4j
export PATH=$NEO4J_HOME/bin:$PATH
sudo tee /etc/systemd/system/neo4j.service > /dev/null <<EOF
[Unit]
Description=Neo4j Graph Database
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/opt/neo4j/bin/neo4j console
Restart=on-abnormal
User=neo4j
Group=neo4j
Environment="NEO4J_CONF=/opt/neo4j/conf"
Environment="NEO4J_HOME=/opt/neo4j"
LimitNOFILE=60000
TimeoutSec=120
[Install]
WantedBy=multi-user.target
EOF
# 重新加载 systemd
sudo systemctl daemon-reload
# 设置初始密码
sudo -u neo4j /opt/neo4j/bin/neo4j-admin dbms set-initial-password your-password
# 启用并启动
sudo systemctl enable neo4j
sudo systemctl start neo4j
配置文件位置: /etc/neo4j/neo4j.conf 或 /opt/neo4j/conf/neo4j.conf
sudo nano /etc/neo4j/neo4j.conf
找到并取消注释以下行:
# 监听所有接口(生产环境请谨慎)
server.default_listen_address=0.0.0.0
# HTTP 端口(浏览器访问)
server.http.listen_address=:7474
# Bolt 端口(应用连接)
server.bolt.listen_address=:7687
# 堆内存设置
server.memory.heap.initial_size=512m
server.memory.heap.max_size=2g
# 页面缓存(建议设置为可用内存的 50%)
server.memory.pagecache.size=1g
sudo systemctl restart neo4j
打开浏览器访问: http://localhost:7474
neo4j# 使用 cypher-shell 连接
cypher-shell -u neo4j -p your-password
# 运行测试查询
RETURN "Hello Neo4j!" AS message;
# 退出
:exit
# 查看日志
sudo journalctl -u neo4j -f
# 或者
tail -f /var/log/neo4j/neo4j.log
创建或编辑 .env 文件:
# Neo4j 配置
NEO4J_ENABLED=true
NEO4J_URI=bolt://localhost:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=your-password
NEO4J_DATABASE=neo4j
# Neo4j 图数据库配置
neo4j.enabled=true
neo4j.uri=bolt://localhost:7687
neo4j.username=neo4j
neo4j.password=your-password
neo4j.database=neo4j
neo4j.connection-timeout-seconds=30
neo4j.max-connection-pool-size=50
# 调用 API 初始化 Neo4j 索引
curl -X POST http://localhost:5232/api/v1/neo4j/init-indexes
# 启动 Neo4j
sudo systemctl start neo4j
# 停止 Neo4j
sudo systemctl stop neo4j
# 重启 Neo4j
sudo systemctl restart neo4j
# 查看状态
sudo systemctl status neo4j
# 查看日志
sudo journalctl -u neo4j -f
# 进入 Cypher Shell
cypher-shell -u neo4j -p your-password
-- 查看所有节点数量
MATCH (n) RETURN count(n);
-- 查看所有关系数量
MATCH ()-[r]->() 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;
# 查看详细错误
sudo journalctl -u neo4j --no-pager -n 50
# 检查端口占用
sudo netstat -tlnp | grep 7687
sudo netstat -tlnp | grep 7474
sudo systemctl status neo4jsudo ufw statuslisten_address修改 neo4j.conf 降低内存配置:
server.memory.heap.initial_size=256m
server.memory.heap.max_size=512m
server.memory.pagecache.size=256m
# 停止服务
sudo systemctl stop neo4j
# 重置密码
sudo neo4j-admin dbms set-initial-password new-password --require-password-change=false
# 启动服务
sudo systemctl start neo4j
neo4j-admin database dump 备份数据