外观
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-enterpriseCentOS/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-enterprise2. 使用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-reload3. 使用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 neo4jtar包安装
bash
# 启动Neo4j服务
sudo systemctl start neo4j
# 设置开机自启
sudo systemctl enable neo4jDocker安装
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 statusDocker安装
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 restartDocker安装
bash
# 停止容器
docker stop neo4j
# 重启容器
docker restart neo4j验证安装
访问Neo4j Browser
- 打开浏览器,访问
http://<server-ip>:7474 - 使用初始用户名/密码
neo4j/neo4j登录 - 首次登录会提示修改密码
- 修改密码后,使用新密码重新登录
使用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 reloadCentOS/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安装后配置
修改默认密码
- 登录Neo4j Browser
- 点击左侧菜单的 "Database Information"
- 点击 "Change Password"
- 输入旧密码和新密码,点击 "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.conf3. 权限问题
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 show5. 启动失败
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 neo4jtar包安装升级
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 neo4jDocker安装升级
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 neo4jDocker安装卸载
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:7687Q4: 如何备份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/certificatesQ8: 如何查看Neo4j的性能指标?
A8: 可以使用以下方法查看性能指标:
- Neo4j Browser的监控面板
- 使用
CALL dbms.listQueries()等内置函数 - 集成Prometheus和Grafana
- 查看Neo4j日志文件
Q9: 如何优化Neo4j的性能?
A9: 优化Neo4j性能的方法包括:
- 配置合适的内存
- 使用SSD存储
- 创建合适的索引
- 优化Cypher查询
- 合理设计数据模型
Q10: 如何迁移Neo4j数据到新服务器?
A10: 迁移Neo4j数据的步骤:
- 在旧服务器上备份Neo4j数据
- 将备份数据复制到新服务器
- 在新服务器上安装相同版本的Neo4j
- 恢复备份数据
- 启动Neo4j服务并验证
