Skip to content

Neo4j Linux安装

系统要求

硬件要求

  • CPU:至少2核,推荐4核或以上
  • 内存:至少4GB,推荐8GB或以上
  • 磁盘:至少10GB可用空间,推荐使用SSD
  • 网络:稳定的网络连接(用于下载安装包和集群部署)

软件要求

  • 操作系统
    • Ubuntu 18.04 LTS或更高版本
    • CentOS/RHEL 7或更高版本
    • Debian 10或更高版本
  • Java环境
    • Neo4j 4.x:Java 11
    • Neo4j 5.x:Java 11或Java 17
  • 依赖软件
    • wget或curl(用于下载安装包)
    • tar(用于解压安装包)
    • systemd(用于服务管理)

安装方式

1. 使用APT/RPM包管理器安装(推荐)

Ubuntu/Debian系统

添加Neo4j仓库
bash
# 添加Neo4j GPG密钥
sudo wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -

# 添加Neo4j仓库
echo 'deb https://debian.neo4j.com stable latest' | sudo tee -a /etc/apt/sources.list.d/neo4j.list

# 更新包列表
sudo apt-get update
安装Neo4j
bash
# 安装Neo4j社区版
sudo apt-get install neo4j

# 安装特定版本的Neo4j
sudo apt-get install neo4j=1:5.14.0

# 安装Neo4j企业版
sudo apt-get install neo4j-enterprise

CentOS/RHEL系统

添加Neo4j仓库
bash
# 创建Neo4j仓库文件
sudo cat <<EOF > /etc/yum.repos.d/neo4j.repo
[neo4j]
name=Neo4j Yum Repo
baseurl=https://yum.neo4j.com/stable/
enabled=1
gpgcheck=1
gpgkey=https://debian.neo4j.com/neotechnology.gpg.key
EOF

# 清除缓存
sudo yum clean all
sudo yum makecache
安装Neo4j
bash
# 安装Neo4j社区版
sudo yum install neo4j

# 安装特定版本的Neo4j
sudo yum install neo4j-5.14.0

# 安装Neo4j企业版
sudo yum install neo4j-enterprise

2. 使用tar包安装

下载Neo4j安装包

bash
# 下载Neo4j社区版
wget https://dist.neo4j.org/neo4j-community-5.14.0-unix.tar.gz

# 下载Neo4j企业版
wget https://dist.neo4j.org/neo4j-enterprise-5.14.0-unix.tar.gz

解压安装包

bash
# 创建安装目录
sudo mkdir -p /opt/neo4j

# 解压安装包
sudo tar -xf neo4j-community-5.14.0-unix.tar.gz -C /opt/neo4j --strip-components=1

# 设置权限
sudo chown -R neo4j:neo4j /opt/neo4j

创建Neo4j用户和组

bash
# 创建neo4j组
sudo groupadd neo4j

# 创建neo4j用户
sudo useradd -r -g neo4j -d /opt/neo4j -s /bin/false neo4j

# 设置权限
sudo chown -R neo4j:neo4j /opt/neo4j

配置systemd服务

bash
# 创建systemd服务文件
sudo cat <<EOF > /etc/systemd/system/neo4j.service
[Unit]
Description=Neo4j Graph Database
After=network.target

[Service]
Type=simple
User=neo4j
ExecStart=/opt/neo4j/bin/neo4j console
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

# 重新加载systemd配置
sudo systemctl daemon-reload

3. 使用Docker安装

拉取Neo4j镜像

bash
# 拉取Neo4j社区版镜像
docker pull neo4j:5.14.0

# 拉取Neo4j企业版镜像
docker pull neo4j:5.14.0-enterprise

运行Neo4j容器

bash
# 创建数据存储目录
mkdir -p ~/neo4j/data ~/neo4j/logs ~/neo4j/conf

# 运行Neo4j容器
docker run -d \
  --name neo4j \
  -p 7474:7474 -p 7687:7687 \
  -v ~/neo4j/data:/data \
  -v ~/neo4j/logs:/logs \
  -v ~/neo4j/conf:/var/lib/neo4j/conf \
  -e NEO4J_AUTH=neo4j/your-password \
  neo4j:5.14.0

初始配置

配置文件位置

  • APT/RPM安装/etc/neo4j/neo4j.conf
  • tar包安装/opt/neo4j/conf/neo4j.conf
  • Docker安装~/neo4j/conf/neo4j.conf(宿主机路径)

核心配置项

网络配置

txt
# 允许远程访问
server.default_listen_address=0.0.0.0

# HTTP协议配置
server.http.listen_address=0.0.0.0:7474
server.http.enabled=true

# Bolt协议配置
server.bolt.listen_address=0.0.0.0:7687
server.bolt.enabled=true

# HTTPS协议配置(可选)
server.https.enabled=false
server.https.listen_address=0.0.0.0:7473

认证配置

txt
# 启用认证
server.bolt.authentication_enabled=true

# 初始密码设置(仅首次启动有效)
# dbms.security.auth_enabled=true
# dbms.security.initial_password=neo4j

内存配置

txt
# JVM堆内存配置
server.memory.heap.initial_size=4G
server.memory.heap.max_size=8G

# 页面缓存配置
server.memory.pagecache.size=4G

日志配置

txt
# 日志级别
dbms.logs.debug.level=INFO

# 查询日志
dbms.logs.query.enabled=true

数据存储配置

txt
# 数据存储目录
server.directories.data=/var/lib/neo4j/data

# 日志存储目录
server.directories.logs=/var/log/neo4j

# 插件目录
server.directories.plugins=/var/lib/neo4j/plugins

# 配置目录
server.directories.conf=/etc/neo4j

启动和管理Neo4j

启动Neo4j服务

APT/RPM安装

bash
# 启动Neo4j服务
sudo systemctl start neo4j

# 设置开机自启
sudo systemctl enable neo4j

tar包安装

bash
# 启动Neo4j服务
sudo systemctl start neo4j

# 设置开机自启
sudo systemctl enable neo4j

Docker安装

bash
# 启动Neo4j容器
docker start neo4j

# 设置开机自启
docker update --restart unless-stopped neo4j

检查Neo4j状态

APT/RPM/tar包安装

bash
# 检查Neo4j服务状态
sudo systemctl status neo4j

# 查看Neo4j日志
sudo journalctl -u neo4j -f

# 使用neo4j命令检查状态
sudo neo4j status

Docker安装

bash
# 检查容器状态
docker ps -a | grep neo4j

# 查看容器日志
docker logs -f neo4j

停止和重启Neo4j

APT/RPM/tar包安装

bash
# 停止Neo4j服务
sudo systemctl stop neo4j

# 重启Neo4j服务
sudo systemctl restart neo4j

# 使用neo4j命令重启
sudo neo4j restart

Docker安装

bash
# 停止容器
docker stop neo4j

# 重启容器
docker restart neo4j

验证安装

访问Neo4j Browser

  1. 打开浏览器,访问 http://<server-ip>:7474
  2. 使用初始用户名/密码 neo4j/neo4j 登录
  3. 首次登录会提示修改密码
  4. 修改密码后,使用新密码重新登录

使用Cypher Shell连接

bash
# 连接到Neo4j
cypher-shell -u neo4j -p <your-password> -a bolt://localhost:7687

# 执行测试查询
neo4j@neo4j> RETURN 'Hello, Neo4j!' AS message;

验证Neo4j版本

bash
# 使用neo4j命令查看版本
sudo neo4j --version

# 在Cypher Shell中查看版本
neo4j@neo4j> CALL dbms.components() YIELD name, version RETURN name, version;

防火墙配置

Ubuntu/Debian系统

bash
# 允许HTTP访问
sudo ufw allow 7474/tcp

# 允许Bolt访问
sudo ufw allow 7687/tcp

# 允许HTTPS访问(可选)
sudo ufw allow 7473/tcp

# 重新加载防火墙规则
sudo ufw reload

CentOS/RHEL系统

bash
# 允许HTTP访问
sudo firewall-cmd --add-port=7474/tcp --permanent

# 允许Bolt访问
sudo firewall-cmd --add-port=7687/tcp --permanent

# 允许HTTPS访问(可选)
sudo firewall-cmd --add-port=7473/tcp --permanent

# 重新加载防火墙规则
sudo firewall-cmd --reload

安装后配置

修改默认密码

  1. 登录Neo4j Browser
  2. 点击左侧菜单的 "Database Information"
  3. 点击 "Change Password"
  4. 输入旧密码和新密码,点击 "Change Password"

配置JVM参数

bash
# 编辑neo4j.conf文件
sudo vim /etc/neo4j/neo4j.conf

# 修改JVM堆内存
server.memory.heap.initial_size=4G
server.memory.heap.max_size=8G

# 修改页面缓存
server.memory.pagecache.size=4G

# 重启Neo4j服务
sudo systemctl restart neo4j

配置日志级别

bash
# 编辑neo4j.conf文件
sudo vim /etc/neo4j/neo4j.conf

# 修改日志级别
dbms.logs.debug.level=INFO

# 启用查询日志
dbms.logs.query.enabled=true

# 重启Neo4j服务
sudo systemctl restart neo4j

常见问题处理

1. 端口被占用

bash
# 检查端口占用情况
ss -tuln | grep -E '7474|7687|7473'

# 查看占用端口的进程
lsof -i :7474

# 停止占用端口的进程
sudo kill -9 <pid>

2. 内存不足

bash
# 检查系统内存使用情况
free -h

# 检查JVM内存配置
grep -A 5 'server.memory' /etc/neo4j/neo4j.conf

# 调整内存配置
sudo vim /etc/neo4j/neo4j.conf

3. 权限问题

bash
# 检查Neo4j数据目录权限
sudo ls -la /var/lib/neo4j/

# 设置正确的权限
sudo chown -R neo4j:neo4j /var/lib/neo4j/

4. 无法远程访问

bash
# 检查网络配置
grep -A 10 'server.default_listen_address' /etc/neo4j/neo4j.conf

# 检查防火墙配置
sudo ufw status

# 检查服务器IP地址
ip addr show

5. 启动失败

bash
# 查看Neo4j日志
sudo journalctl -u neo4j -f

# 查看详细日志
cat /var/log/neo4j/neo4j.log

# 检查配置文件语法
sudo neo4j check-conf

升级Neo4j

APT/RPM安装升级

bash
# Ubuntu/Debian系统
sudo apt-get update
sudo apt-get upgrade neo4j

# CentOS/RHEL系统
sudo yum update neo4j

tar包安装升级

bash
# 停止当前Neo4j服务
sudo systemctl stop neo4j

# 备份数据目录
sudo cp -r /var/lib/neo4j/data /var/lib/neo4j/data_backup

# 下载新版本安装包
wget https://dist.neo4j.org/neo4j-community-5.15.0-unix.tar.gz

# 解压并覆盖安装
sudo tar -xf neo4j-community-5.15.0-unix.tar.gz -C /opt/neo4j --strip-components=1

# 设置权限
sudo chown -R neo4j:neo4j /opt/neo4j

# 启动Neo4j服务
sudo systemctl start neo4j

Docker安装升级

bash
# 停止并删除旧容器
docker stop neo4j
docker rm neo4j

# 拉取新版本镜像
docker pull neo4j:5.15.0

# 运行新容器
docker run -d \
  --name neo4j \
  -p 7474:7474 -p 7687:7687 \
  -v ~/neo4j/data:/data \
  -v ~/neo4j/logs:/logs \
  -v ~/neo4j/conf:/var/lib/neo4j/conf \
  -e NEO4J_AUTH=neo4j/your-password \
  neo4j:5.15.0

卸载Neo4j

APT/RPM安装卸载

bash
# Ubuntu/Debian系统
sudo apt-get remove --purge neo4j

# CentOS/RHEL系统
sudo yum remove neo4j

# 删除数据和配置目录
sudo rm -rf /var/lib/neo4j/ /etc/neo4j/ /var/log/neo4j/

tar包安装卸载

bash
# 停止Neo4j服务
sudo systemctl stop neo4j
sudo systemctl disable neo4j

# 删除systemd服务
sudo rm /etc/systemd/system/neo4j.service
sudo systemctl daemon-reload

# 删除安装目录
sudo rm -rf /opt/neo4j/

# 删除数据和日志目录
sudo rm -rf /var/lib/neo4j/ /var/log/neo4j/

# 删除用户和组
sudo userdel neo4j
sudo groupdel neo4j

Docker安装卸载

bash
# 停止并删除容器
docker stop neo4j
docker rm neo4j

# 删除镜像
docker rmi neo4j:5.14.0

# 删除数据目录(可选)
rm -rf ~/neo4j/

最佳实践

1. 系统配置

  • 使用SSD存储,提高读写性能
  • 配置合适的交换空间(推荐为内存的2倍)
  • 关闭不必要的服务,释放系统资源
  • 定期更新系统和依赖软件

2. Neo4j配置

  • 根据服务器内存大小合理配置JVM堆内存和页面缓存
  • 启用查询日志,便于性能分析和故障排查
  • 配置适当的日志级别,避免日志过大
  • 定期备份Neo4j数据

3. 安全配置

  • 及时修改初始密码
  • 启用防火墙,限制访问IP
  • 考虑使用HTTPS加密通信
  • 定期更新Neo4j版本,修复安全漏洞

4. 监控和维护

  • 安装监控工具,如Prometheus和Grafana
  • 设置告警规则,及时发现问题
  • 定期清理日志文件
  • 定期执行数据库一致性检查

版本差异

Neo4j 4.x vs 5.x安装差异

  • Java版本:4.x需要Java 11,5.x支持Java 11或Java 17
  • 配置文件:5.x的配置文件结构有所调整
  • 安装包:5.x的安装包命名格式有所变化
  • 默认端口:端口保持不变(7474/7687)

不同Linux发行版安装差异

  • 包管理器:Ubuntu/Debian使用APT,CentOS/RHEL使用YUM
  • 防火墙:Ubuntu/Debian使用ufw,CentOS/RHEL使用firewalld
  • 服务管理:均使用systemd,但配置文件路径可能不同
  • 默认路径:数据和配置文件的默认路径可能不同

常见问题(FAQ)

Q1: 如何选择Neo4j的安装方式?

A1: 推荐使用APT/RPM包管理器安装,便于管理和升级。对于开发环境或需要快速部署的场景,可以使用Docker安装。对于需要自定义配置的生产环境,可以考虑tar包安装。

Q2: Neo4j需要多少内存?

A2: 推荐的内存配置为:

  • 小型部署(开发测试):4-8GB
  • 中型部署(生产环境):16-32GB
  • 大型部署(大规模数据):64GB或以上

Q3: 如何修改Neo4j的默认端口?

A3: 可以在neo4j.conf配置文件中修改以下参数:

txt
server.http.listen_address=0.0.0.0:7474
server.bolt.listen_address=0.0.0.0:7687

Q4: 如何备份Neo4j数据?

A4: 可以使用以下方法备份Neo4j数据:

  • 停止Neo4j服务,复制数据目录
  • 使用neo4j-admin backup命令进行在线备份
  • 使用Docker卷备份

Q5: 如何恢复Neo4j数据?

A5: 可以使用以下方法恢复Neo4j数据:

  • 停止Neo4j服务,恢复数据目录
  • 使用neo4j-admin restore命令进行恢复
  • 使用Docker卷恢复

Q6: Neo4j支持集群部署吗?

A6: 是的,Neo4j企业版支持因果集群和HA集群部署。社区版仅支持单实例部署。

Q7: 如何配置Neo4j使用HTTPS?

A7: 可以在neo4j.conf配置文件中启用HTTPS并配置SSL证书:

txt
server.https.enabled=true
server.https.listen_address=0.0.0.0:7473
server.https.certificates_directory=/var/lib/neo4j/certificates

Q8: 如何查看Neo4j的性能指标?

A8: 可以使用以下方法查看性能指标:

  • Neo4j Browser的监控面板
  • 使用CALL dbms.listQueries()等内置函数
  • 集成Prometheus和Grafana
  • 查看Neo4j日志文件

Q9: 如何优化Neo4j的性能?

A9: 优化Neo4j性能的方法包括:

  • 配置合适的内存
  • 使用SSD存储
  • 创建合适的索引
  • 优化Cypher查询
  • 合理设计数据模型

Q10: 如何迁移Neo4j数据到新服务器?

A10: 迁移Neo4j数据的步骤:

  1. 在旧服务器上备份Neo4j数据
  2. 将备份数据复制到新服务器
  3. 在新服务器上安装相同版本的Neo4j
  4. 恢复备份数据
  5. 启动Neo4j服务并验证