1. 首页 > 软件安装教程 > 正文

Neo4j安装配置-Neo4j数据库安装配置_升级迁移详细过程

1. Neo4j概述与环境规划

Neo4j是一款高性能的图数据库,采用原生图存储结构,支持ACID事务。Neo4j使用Cypher查询语言,适合处理复杂的关系数据,广泛应用于社交网络、知识图谱、推荐系统等场景。更多学习教程www.fgedu.net.cn

1.1 Neo4j版本说明

Neo4j目前主要版本为5.x,本教程以Neo4j 5.15为例进行详细讲解。

# 查看Neo4j版本
$ neo4j –version
neo4j 5.15.0

# 查看服务状态
$ neo4j status
Neo4j is running at pid 12345

1.2 环境规划

本次安装环境规划如下:

主机名:fgedudb01.fgedu.net.cn
IP地址:192.168.1.51
HTTP端口:7474
Bolt端口:7687
数据目录:/data/neo4j/data
配置目录:/etc/neo4j
日志目录:/var/log/neo4j

存储规划:
数据库名:fgedudb
内存配置:8GB堆内存

1.3 Neo4j核心特性

主要特点:
1. 原生图存储:节点和关系的原生存储
2. ACID事务:完整的事务支持
3. Cypher查询:声明式图查询语言
4. 高性能:毫秒级查询响应
5. 集群模式:支持因果集群
6. 可视化:内置浏览器界面
7. 插件扩展:支持APOC等插件
8. 多语言驱动:支持Java、Python、JavaScript等

2. 硬件环境要求与检查

在安装Neo4j之前,需要对服务器硬件环境进行全面检查。学习交流加群风哥微信: itpux-com

2.1 最低硬件要求

最低配置:
CPU:2核心
内存:4GB
磁盘:20GB

推荐配置(生产环境):
CPU:8核心以上
内存:32GB以上
磁盘:500GB以上SSD

大规模部署配置:
CPU:16核心以上
内存:64GB以上
磁盘:1TB以上SSD

2.2 系统环境检查

# 检查操作系统版本
# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.8 (Ootpa)

# 检查内核版本
# uname -a
Linux fgedudb01 4.18.0-477.10.1.el8_8.x86_64 #1 SMP Fri Apr 4 10:00:00 CST 2026 x86_64 x86_64 x86_64 GNU/Linux

# 检查Java版本(Neo4j需要Java环境)
# java -version
openjdk version “17.0.9” 2023-10-17 LTS
OpenJDK Runtime Environment (build 17.0.9+9-LTS)
OpenJDK 64-Bit Server VM (build 17.0.9+9-LTS, mixed mode, sharing)

# 检查内存信息
# free -h
total used free shared buff/cache available
Mem: 31Gi 1.0Gi 29Gi 256Mi 1.0Gi 30Gi
Swap: 7Gi 0B 7Gi

# 检查磁盘空间
# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg_system-lv_root 50G 2.5G 48G 5% /
/dev/sda2 1014M 150M 865M 15% /boot
/dev/mapper/vg_data-lv_data 500G 50G 450G 10% /data

2.3 安装Java环境

# 安装OpenJDK 17
# dnf install -y java-17-openjdk java-17-openjdk-devel

# 输出示例:
上次元数据过期检查:0:00:00 前,执行于 2026年04月04日 星期五 10时00分00秒。
依赖关系解决。
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
安装:
java-17-openjdk x86_64 1:17.0.9.0.9-1.el8 appstream 300 k
java-17-openjdk-devel x86_64 1:17.0.9.0.9-1.el8 appstream 3.4 M

事务概要
================================================================================
安装 2 软件包

总下载:3.7 M
安装大小:15 M
下载软件包:
已安装:
java-17-openjdk-1:17.0.9.0.9-1.el8.x86_64
java-17-openjdk-devel-1:17.0.9.0.9-1.el8.x86_64

完毕!

# 配置JAVA_HOME环境变量
# vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH

# 使环境变量生效
# source /etc/profile.d/java.sh

# 验证Java环境
# echo $JAVA_HOME
/usr/lib/jvm/java-17-openjdk

# java -version
openjdk version “17.0.9” 2023-10-17 LTS

2.4 内核参数配置

# 配置内核参数
# vi /etc/sysctl.d/99-neo4j.conf

# 添加以下参数
# 文件描述符限制
fs.file-max = 655360

# 内存参数
vm.max_map_count = 262144
vm.swappiness = 1

# 使内核参数生效
# sysctl -p /etc/sysctl.d/99-neo4j.conf

# 输出示例:
fs.file-max = 655360
vm.max_map_count = 262144
vm.swappiness = 1

# 配置用户限制
# vi /etc/security/limits.conf

# 添加以下配置
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

生产环境建议:Neo4j需要Java 17运行环境。vm.max_map_count参数对Lucene索引很重要,必须设置正确。

3. Neo4j安装步骤

本节详细介绍Neo4j 5.15的安装过程。学习交流加群风哥QQ113257174

3.1 添加Neo4j仓库

# 添加Neo4j仓库
# rpm –import https://debian.neo4j.com/neotechnology.gpg.key

# 创建仓库配置
# vi /etc/yum.repos.d/neo4j.repo

[neo4j]
name=Neo4j Yum Repo
baseurl=https://yum.neo4j.com
enabled=1
gpgcheck=1

# 更新缓存
# dnf makecache

3.2 安装Neo4j

# 安装Neo4j
# dnf install -y neo4j-5.15.0

# 输出示例:
上次元数据过期检查:0:00:00 前,执行于 2026年04月04日 星期五 10时00分00秒。
依赖关系解决。
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
安装:
neo4j x86_64 5.15.0-1 neo4j 50 M

事务概要
================================================================================
安装 1 软件包

总下载:50 M
安装大小:100 M
下载软件包:
neo4j-5.15.0-1.x86_64.rpm 10.0 MB/s | 50 MB 00:05
——————————————————————————–
总计 10.0 MB/s | 50 MB 00:05
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : [100%]
安装 : neo4j-5.15.0-1.x86_64 [100%]
验证 : neo4j-5.15.0-1.x86_64 [100%]

已安装:
neo4j-5.15.0-1.x86_64

完毕!

# 验证安装
$ neo4j –version
neo4j 5.15.0

# 查看安装目录
# ls -la /usr/share/neo4j/
总用量 0
drwxr-xr-x. 2 root root 6 4月 4 10:00 bin
drwxr-xr-x. 2 root root 6 4月 4 10:00 conf
drwxr-xr-x. 2 root root 6 4月 4 10:00 lib
drwxr-xr-x. 2 root root 6 4月 4 10:00 plugins

3.3 配置数据目录

# 创建数据目录
# mkdir -p /data/neo4j/data
# mkdir -p /data/neo4j/logs
# mkdir -p /data/neo4j/import
# mkdir -p /data/neo4j/plugins

# 设置权限
# chown -R neo4j:neo4j /data/neo4j
# chmod -R 755 /data/neo4j

# 修改配置文件
# vi /etc/neo4j/neo4j.conf

# 修改数据目录
server.directories.data=/data/neo4j/data
server.directories.logs=/data/neo4j/logs
server.directories.import=/data/neo4j/import
server.directories.plugins=/data/neo4j/plugins

3.4 启动Neo4j服务

# 启动Neo4j服务
# systemctl start neo4j

# 设置开机自启动
# systemctl enable neo4j

# 输出示例:
Created symlink /etc/systemd/system/multi-user.target.wants/neo4j.service → /usr/lib/systemd/system/neo4j.service.

# 检查服务状态
# systemctl status neo4j

● neo4j.service – Neo4j Graph Database
Loaded: loaded (/usr/lib/systemd/system/neo4j.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2026-04-04 10:00:00 CST; 5s ago
Main PID: 12345 (java)
Tasks: 50 (limit: 4915)
Memory: 500.0M
CGroup: /system.slice/neo4j.service
└─12345 /usr/bin/java …

# 检查端口
# netstat -tlnp | grep java
tcp6 0 0 :::7474 :::* LISTEN 12345/java
tcp6 0 0 :::7473 :::* LISTEN 12345/java
tcp6 0 0 :::7687 :::* LISTEN 12345/java

# 端口说明:
# 7474: HTTP端口
# 7473: HTTPS端口
# 7687: Bolt协议端口

风哥提示:Neo4j首次启动需要初始化数据库,可能需要较长时间。默认用户名和密码都是neo4j,首次登录需要修改密码。

4. Neo4j参数配置

Neo4j参数配置是数据库性能优化的关键步骤,直接影响系统性能。更多学习教程公众号风哥教程itpux_com

4.1 配置文件说明

# 主配置文件位置
# vi /etc/neo4j/neo4j.conf

# 主要配置参数说明:

# 网络配置
server.default_listen_address=0.0.0.0
server.http.enabled=true
server.http.listen_address=:7474
server.https.enabled=true
server.https.listen_address=:7473
server.bolt.enabled=true
server.bolt.listen_address=:7687

# 数据目录
server.directories.data=/data/neo4j/data
server.directories.logs=/data/neo4j/logs

# 内存配置
server.memory.heap.initial_size=4G
server.memory.heap.max_size=8G
server.memory.pagecache.size=4G

# 查看当前配置
$ neo4j admin server get-defaults

4.2 内存参数配置

# 编辑配置文件
# vi /etc/neo4j/neo4j.conf

# JVM堆内存配置
# 建议设置为物理内存的50%
server.memory.heap.initial_size=8G
server.memory.heap.max_size=8G

# 页面缓存配置
# 建议设置为物理内存的25-50%
server.memory.pagecache.size=4G

# 事务日志配置
db.tx_log.rotation.retention_policy=2 days 1G size

# 重启服务
# systemctl restart neo4j

# 验证内存配置
$ neo4j admin server get-defaults | grep memory
server.memory.heap.initial_size=8G
server.memory.heap.max_size=8G
server.memory.pagecache.size=4G

4.3 安全配置

# 编辑配置文件
# vi /etc/neo4j/neo4j.conf

# 认证配置
dbms.security.auth_enabled=true

# 密码策略
dbms.security.auth.password_policy.minimum_length=8
dbms.security.auth.password_policy.minimum_uppercase_count=1
dbms.security.auth.password_policy.minimum_lowercase_count=1
dbms.security.auth.password_policy.minimum_digit_count=1

# 远程访问配置
dbms.connector.http.advertised_address=192.168.1.51:7474
dbms.connector.https.advertised_address=192.168.1.51:7473
dbms.connector.bolt.advertised_address=192.168.1.51:7687

# 重启服务
# systemctl restart neo4j

# 修改默认密码
$ cypher-shell -u neo4j -p neo4j
Connected to Neo4j at neo4j://localhost:7687 as user neo4j.
Type :help for a list of available commands or :exit to exit the shell.
Note that Cypher queries must end with a semicolon.

neo4j@neo4j> ALTER CURRENT USER SET PASSWORD FROM ‘neo4j’ TO ‘fgedupass123’;

生产环境建议:根据服务器内存大小合理配置堆内存和页面缓存。建议禁用匿名访问,启用认证功能。

5. 图数据库管理

Neo4j使用Cypher查询语言管理图数据,支持节点、关系和属性的创建和查询。from:www.itpux.com

5.1 创建数据库

# 连接Neo4j
$ cypher-shell -u neo4j -p fgedupass123

# 创建数据库
neo4j@neo4j> CREATE DATABASE fgedudb;

# 输出示例:
0 rows
ready to start consuming query results after 5 ms, query completed after 5 ms.

# 查看所有数据库
neo4j@neo4j> SHOW DATABASES;

+——————————————————————————————–+
| name | type | status | currentStatus | default | home | constituents | access |
+——————————————————————————————–+
| “neo4j” | “standard” | “online” | “online” | TRUE | TRUE | [] | “read-write” |
| “fgedudb” | “standard” | “online” | “online” | FALSE | FALSE | [] | “read-write” |
| “system” | “system” | “online” | “online” | FALSE | FALSE | [] | “read-write” |
+——————————————————————————————–+

3 rows
ready to start consuming query results after 5 ms, query completed after 5 ms.

# 切换到新数据库
neo4j@neo4j> :use fgedudb;
neo4j@fgedudb>

5.2 创建节点和关系

# 创建节点
neo4j@fgedudb> CREATE (p:Person {name: ‘张三’, age: 30, city: ‘北京’});

# 输出示例:
Created 1 nodes, Set 1 properties, Added 1 labels
ready to start consuming query results after 5 ms, query completed after 5 ms.

# 创建多个节点
neo4j@fgedudb> CREATE (p1:Person {name: ‘李四’, age: 28, city: ‘上海’}),
(p2:Person {name: ‘王五’, age: 35, city: ‘广州’}),
(p3:Person {name: ‘赵六’, age: 32, city: ‘深圳’});

# 创建带关系的节点
neo4j@fgedudb> CREATE (a:Person {name: ‘张三’})-[:KNOWS {since: 2020}]->(b:Person {name: ‘李四’});

# 查看所有节点
neo4j@fgedudb> MATCH (n) RETURN n LIMIT 10;

+—————————————————+
| n |
+—————————————————+
| (:Person {name: “张三”, age: 30, city: “北京”}) |
| (:Person {name: “李四”, age: 28, city: “上海”}) |
| (:Person {name: “王五”, age: 35, city: “广州”}) |
| (:Person {name: “赵六”, age: 32, city: “深圳”}) |
+—————————————————+

# 创建关系
neo4j@fgedudb> MATCH (a:Person {name: ‘张三’}), (b:Person {name: ‘王五’})
CREATE (a)-[:FRIEND {since: 2021}]->(b);

# 查看关系
neo4j@fgedudb> MATCH (a)-[r]->(b) RETURN a.name, type(r), b.name;

+————————————-+
| a.name | type(r) | b.name |
+————————————-+
| “张三” | “KNOWS” | “李四” |
| “张三” | “FRIEND” | “王五” |
+————————————-+

5.3 查询数据

# 基本查询
neo4j@fgedudb> MATCH (p:Person) WHERE p.age > 30 RETURN p.name, p.age;

+——————-+
| p.name | p.age |
+——————-+
| “王五” | 35 |
| “赵六” | 32 |
+——————-+

# 关系查询
neo4j@fgedudb> MATCH (a:Person {name: ‘张三’})-[:KNOWS|FRIEND]->(b)
RETURN a.name, b.name;

+——————-+
| a.name | b.name |
+——————-+
| “张三” | “李四” |
| “张三” | “王五” |
+——————-+

# 多跳关系查询
neo4j@fgedudb> MATCH path = (a:Person)-[*1..3]-(b:Person)
RETURN path;

# 聚合查询
neo4j@fgedudb> MATCH (p:Person)
RETURN p.city, count(*) as count, avg(p.age) as avg_age;

+———————————–+
| p.city | count | avg_age |
+———————————–+
| “北京” | 1 | 30.0 |
| “上海” | 1 | 28.0 |
| “广州” | 1 | 35.0 |
| “深圳” | 1 | 32.0 |
+———————————–+

# 最短路径查询
neo4j@fgedudb> MATCH path = shortestPath((a:Person {name: ‘张三’})-[*]-(b:Person {name: ‘赵六’}))
RETURN path;

# 统计节点数量
neo4j@fgedudb> MATCH (n) RETURN count(n) as node_count;
+————+
| node_count |
+————+
| 4 |
+————+

5.4 创建索引

# 创建属性索引
neo4j@fgedudb> CREATE INDEX person_name_index FOR (p:Person) ON (p.name);

# 输出示例:
Added 1 index.
ready to start consuming query results after 5 ms, query completed after 5 ms.

# 创建复合索引
neo4j@fgedudb> CREATE INDEX person_city_age_index FOR (p:Person) ON (p.city, p.age);

# 创建唯一约束
neo4j@fgedudb> CREATE CONSTRAINT person_name_unique FOR (p:Person) REQUIRE p.name IS UNIQUE;

# 查看所有索引
neo4j@fgedudb> SHOW INDEXES;

+————————————————————————–+
| id | name | state | type | uniqueness |
+————————————————————————–+
| 1 | “person_name_index” | “ONLINE” | “BTREE” | “NONUNIQUE” |
| 2 | “person_city_age_index”| “ONLINE”| “BTREE” | “NONUNIQUE” |
| 3 | “person_name_unique” | “ONLINE” | “BTREE” | “UNIQUE” |
+————————————————————————–+

# 使用索引查询
neo4j@fgedudb> MATCH (p:Person) WHERE p.name = ‘张三’ RETURN p;

# 查看查询计划
neo4j@fgedudb> EXPLAIN MATCH (p:Person) WHERE p.name = ‘张三’ RETURN p;

风哥提示:为常用查询字段创建索引可以显著提高查询性能。唯一约束会自动创建索引。

6. 网络连接配置

网络连接配置是客户端访问Neo4j的关键,需要正确配置监听端口和连接方式。更多学习教程www.fgedu.net.cn

6.1 配置网络监听

# 查看当前监听端口
# netstat -tlnp | grep java
tcp6 0 0 :::7474 :::* LISTEN 12345/java
tcp6 0 0 :::7473 :::* LISTEN 12345/java
tcp6 0 0 :::7687 :::* LISTEN 12345/java

# 修改监听地址
# vi /etc/neo4j/neo4j.conf

server.default_listen_address=0.0.0.0
server.http.advertised_address=192.168.1.51:7474
server.https.advertised_address=192.168.1.51:7473
server.bolt.advertised_address=192.168.1.51:7687

# 重启服务
# systemctl restart neo4j

# 配置防火墙
# firewall-cmd –permanent –add-port=7474/tcp
success
# firewall-cmd –permanent –add-port=7473/tcp
success
# firewall-cmd –permanent –add-port=7687/tcp
success
# firewall-cmd –reload
success

6.2 配置HTTPS

# 生成SSL证书
# mkdir -p /etc/neo4j/certificates
# openssl req -x509 -newkey rsa:4096 -keyout /etc/neo4j/certificates/neo4j.key \
-out /etc/neo4j/certificates/neo4j.crt -days 365 -nodes \
-subj “/CN=fgedudb01.fgedu.net.cn”

# 修改配置文件
# vi /etc/neo4j/neo4j.conf

server.https.enabled=true
server.https.tls_certificate=/etc/neo4j/certificates/neo4j.crt
server.https.tls_key=/etc/neo4j/certificates/neo4j.key

# 重启服务
# systemctl restart neo4j

# 验证HTTPS
$ curl -k https://192.168.1.51:7473

6.3 使用Python连接

# 安装Python驱动
$ pip install neo4j

# Python连接示例
from neo4j import GraphDatabase

class Neo4jConnection:
def __init__(self, uri, user, password):
self.driver = GraphDatabase.driver(uri, auth=(user, password))

def close(self):
self.driver.close()

def query(self, query, parameters=None):
with self.driver.session() as session:
result = session.run(query, parameters)
return [record.data() for record in result]

# 连接Neo4j
conn = Neo4jConnection(“bolt://192.168.1.51:7687”, “neo4j”, “fgedupass123”)

# 执行查询
result = conn.query(“MATCH (n) RETURN count(n) as count”)
print(result)
# [{‘count’: 4}]

# 创建节点
conn.query(“CREATE (p:Person {name: $name, age: $age})”,
parameters={“name”: “测试用户”, “age”: 25})

# 关闭连接
conn.close()

生产环境建议:建议配置HTTPS加密通信。使用Bolt协议可以获得更好的性能。

7. 备份恢复配置

备份恢复是数据库管理的重要环节,Neo4j提供了多种备份恢复方式。学习交流加群风哥微信: itpux-com

7.1 数据备份

# 创建备份目录
# mkdir -p /backup/neo4j

# 使用neo4j-admin备份
# neo4j-admin database backup neo4j –to-path=/backup/neo4j

# 输出示例:
Starting backup of database ‘neo4j’
Backup of database ‘neo4j’ completed successfully
Backup location: /backup/neo4j/neo4j-2026-04-04T10:00:00

# 备份所有数据库
# neo4j-admin database backup –to-path=/backup/neo4j

# 查看备份文件
# ls -la /backup/neo4j/
总用量 0
drwxr-xr-x. 2 neo4j neo4j 6 4月 4 10:00 neo4j-2026-04-04T10:00:00

# 导出为Cypher脚本
$ neo4j-admin database dump neo4j –to-path=/backup/neo4j/dump

7.2 数据恢复

# 停止Neo4j服务
# systemctl stop neo4j

# 恢复数据库
# neo4j-admin database restore neo4j –from-path=/backup/neo4j/neo4j-2026-04-04T10:00:00

# 输出示例:
Starting restore of database ‘neo4j’
Restore of database ‘neo4j’ completed successfully

# 从dump文件恢复
# neo4j-admin database load neo4j –from-path=/backup/neo4j/dump

# 启动服务
# systemctl start neo4j

# 验证恢复
$ cypher-shell -u neo4j -p fgedupass123 “MATCH (n) RETURN count(n)”
+———-+
| count(n) |
+———-+
| 4 |
+———-+

7.3 自动备份脚本

# 创建备份脚本
# vi /usr/local/bin/neo4j_backup.sh

#!/bin/bash
BACKUP_DIR=/backup/neo4j
DATE=$(date +%Y%m%d_%H%M%S)
LOG_FILE=/var/log/neo4j/backup.log

echo “=== Backup started at $(date) ===” >> $LOG_FILE

neo4j-admin database backup neo4j –to-path=${BACKUP_DIR}/${DATE} >> $LOG_FILE 2>&1

if [ $? -eq 0 ]; then
echo “Backup completed successfully” >> $LOG_FILE
else
echo “Backup failed” >> $LOG_FILE
fi

# 清理30天前的备份
find ${BACKUP_DIR} -mindepth 1 -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; >> $LOG_FILE 2>&1

echo “=== Backup finished at $(date) ===” >> $LOG_FILE
echo “” >> $LOG_FILE

# 设置脚本权限
# chmod +x /usr/local/bin/neo4j_backup.sh

# 配置定时任务
# crontab -e

# 添加以下内容(每天凌晨2点执行备份)
0 2 * * * /usr/local/bin/neo4j_backup.sh

风哥提示:生产环境建议配置自动备份脚本,定期执行备份。备份前不需要停止服务,Neo4j支持在线备份。

8. 升级与迁移

Neo4j升级和迁移是运维工作中的重要环节,需要仔细规划和执行。更多学习教程公众号风哥教程itpux_com

8.1 版本升级

# 检查当前版本
$ neo4j –version
neo4j 5.15.0

# 执行完整备份
# neo4j-admin database backup neo4j –to-path=/backup/neo4j/pre_upgrade

# 停止服务
# systemctl stop neo4j

# 升级Neo4j
# dnf update neo4j

# 或者安装指定版本
# dnf install neo4j-5.16.0

# 执行数据库迁移
# neo4j-admin database migrate neo4j

# 输出示例:
Starting migration of database ‘neo4j’
Migration of database ‘neo4j’ completed successfully

# 启动服务
# systemctl start neo4j

# 验证版本
$ neo4j –version
neo4j 5.16.0

8.2 迁移到新服务器

# 在源服务器执行备份
# neo4j-admin database backup neo4j –to-path=/backup/neo4j/migration

# 打包备份文件
# tar -czf neo4j_migration.tar.gz /backup/neo4j/migration

# 传输备份文件
# scp neo4j_migration.tar.gz new-server:/backup/

# 在新服务器安装Neo4j
# 参考3.2节安装步骤

# 恢复数据
# systemctl stop neo4j
# tar -xzf /backup/neo4j_migration.tar.gz -C /
# neo4j-admin database restore neo4j –from-path=/backup/neo4j/migration/neo4j-*

# 启动服务
# systemctl start neo4j

# 验证迁移
$ cypher-shell -u neo4j -p fgedupass123 “MATCH (n) RETURN count(n)”

生产环境建议:升级前必须执行完整备份。跨大版本升级需要仔细阅读升级文档,确认兼容性。

9. 生产环境实战案例

本节提供一个完整的生产环境配置案例,帮助读者更好地理解Neo4j的实际应用。from:www.itpux.com

9.1 集群部署

# Neo4j因果集群架构
# 至少需要3个核心服务器

# 节点1: fgedudb01 (192.168.1.51) – Core
# 节点2: fgedudb02 (192.168.1.52) – Core
# 节点3: fgedudb03 (192.168.1.53) – Core

# 在所有节点配置
# vi /etc/neo4j/neo4j.conf

# 节点1配置
server.default_listen_address=0.0.0.0
server.default_advertised_address=192.168.1.51

dbms.mode=CORE
causal_clustering.minimum_core_cluster_size_at_formation=3
causal_clustering.minimum_core_cluster_size_at_runtime=3
causal_clustering.initial_discovery_members=192.168.1.51:7000,192.168.1.52:7000,192.168.1.53:7000

# 节点2配置
server.default_advertised_address=192.168.1.52
dbms.mode=CORE

# 节点3配置
server.default_advertised_address=192.168.1.53
dbms.mode=CORE

# 启动所有节点
# systemctl start neo4j

# 检查集群状态
$ cypher-shell -u neo4j -p fgedupass123 “CALL dbms.cluster.overview()”

+———————————————————————————————-+
| id | addresses | groups | role |
+———————————————————————————————-+
| “fgedudb01-12345” | {bolt: “bolt://192.168.1.51:7687”, …} | [“core”] | “LEADER”|
| “fgedudb02-12346” | {bolt: “bolt://192.168.1.52:7687”, …} | [“core”] | “FOLLOWER”|
| “fgedudb03-12347” | {bolt: “bolt://192.168.1.53:7687”, …} | [“core”] | “FOLLOWER”|
+———————————————————————————————-+

9.2 性能监控

# 查看数据库统计
neo4j@fgedudb> CALL db.stats.retrieve(‘GRAPH COUNTS’);

+——————————————+
| section | data |
+——————————————+
| “GRAPH COUNTS”| {nodes: 10000, …} |
+——————————————+

# 查看查询性能
neo4j@fgedudb> CALL dbms.listQueries();

+————————————————————————–+
| queryId | username | query | elapsedTime | status |
+————————————————————————–+
| “q1” | “neo4j” | “MATCH (n) RETURN n LIMIT 10” | “5 ms” | “running” |
+————————————————————————–+

# 查看事务信息
neo4j@fgedudb> CALL dbms.listTransactions();

# 查看JVM信息
neo4j@fgedudb> CALL dbms.info();

# 查看页面缓存统计
neo4j@fgedudb> CALL dbms.queryJmx(“org.neo4j:*”);

# 查看存储使用
neo4j@fgedudb> CALL dbms.listConfig(‘server.directories’);

9.3 APOC插件安装

# 下载APOC插件
# cd /data/neo4j/plugins
# wget https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/5.15.0/apoc-5.15.0-core.jar

# 修改配置文件
# vi /etc/neo4j/neo4j.conf

# 添加插件配置
dbms.security.procedures.unrestricted=apoc.*
dbms.security.procedures.allowlist=apoc.*

# 重启服务
# systemctl restart neo4j

# 验证APOC安装
neo4j@neo4j> RETURN apoc.version();
+————–+
| apoc.version |
+————–+
| “5.15.0” |
+————–+

# 使用APOC功能
neo4j@neo4j> CALL apoc.help(‘search’);
neo4j@neo4j> CALL apoc.path.expandConfig(…);

风哥提示:Neo4j集群部署建议至少3个核心节点,确保高可用。APOC插件提供了丰富的扩展功能,建议在生产环境安装。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息