RHEL 8.4系统Neo4j 3.5.28执行neo4j-admin load导入备份报错如何解决
RHEL 8.4 环境 Neo4j 3.5.28 导入备份 zstd-jni 错误解决方案
问题根因
RHEL 8.4 默认未预装 zstd-jni 原生依赖库,且 Neo4j 3.5.28 内置的 zstd-jni jar 包版本较低,对 RHEL 8.4 的系统库兼容性存在缺陷;而 CentOS 8 默认镜像内置了对应的依赖库,因此无此问题。
可行解决方案
方案1:安装系统级 libzstd-jni 依赖(优先推荐)
- 启用 RHEL 8 的 CodeReady Linux Builder(CRB)仓库:
subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms - 安装 zstd-jni 依赖包:
dnf install -y zstd-jni - 重启 Neo4j 服务后重新执行
neo4j-admin load --from=<file>命令即可。
方案2:替换 Neo4j 内置的 zstd-jni jar 包
如果无法启用 CRB 仓库,可手动更新 jar 包解决兼容性问题:
- 下载兼容高版本 RHEL 的 zstd-jni jar 包(版本≥1.5.0 即可)
- 进入 Neo4j 安装目录的 lib 文件夹:
cd /path/to/neo4j/lib - 备份原有旧版本 zstd-jni jar 包:
mv zstd-jni-*.jar zstd-jni-old.jar - 将新下载的 zstd-jni jar 包放入该目录,授予和其他 jar 包一致的权限
- 重启 Neo4j 服务后重新执行导入命令即可。
方案3:临时绕过校验(仅适用于非zstd压缩的备份文件)
如果待导入的备份文件未使用 zstd 压缩,可直接执行导入命令跳过 zstd 库加载逻辑:
neo4j-admin load --from=<file> --database=<目标库名> --force
注:该方案仅为应急方案,zstd 压缩的备份文件无法用该方法绕过。
内容的提问来源于stack exchange,提问作者Dustin Miller
相关产品推荐
相关产品推荐

