You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Neo4j Aura迁移至Ubuntu VM执行neo4j-admin加载时遇UnsatisfiedLinkError错误

解决Neo4j Aura迁移至Ubuntu虚拟机的备份加载错误

环境信息

  • Neo4j版本:5.7.0
  • 虚拟机系统:Ubuntu 22.04.1 LTS(GNU/Linux 5.15.0-47-generic x86_64)
  • 操作目标:将Neo4j Aura备份数据加载至校内虚拟机,提升局域网内应用通信速度

报错详情

执行加载命令时出现两类错误,命令及完整输出如下:

root@DPT-X-11011:~# neo4j-admin version
/etc/default/neo4j: line 22: server.bolt.listen_address=0.0.0.0:7687: command not found
neo4j 5.7.0

root@DPT-X-11011:~# ../bin/neo4j-admin database load neo4j --from-path=./snapshot/31-5-2023/ --overwrite-destination=true
/etc/default/neo4j: line 22: server.bolt.listen_address=0.0.0.0:7687: command not found
Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/libzstd-jni-1.5.4-215256062990507315695.so: /tmp/libzstd-jni-1.5.4-215256062990507315695.so: failed to map segment from shared object
no zstd-jni-1.5.4-2 in java.library.path: /usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
Unsupported OS/arch, cannot find /linux/amd64/libzstd-jni-1.5.4-2.so or load zstd-jni-1.5.4-2 from system libraries. Please try building from source the jar or providing libzstd-jni-1.5.4-2 in your system.
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2429)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:818)
at java.base/java.lang.System.loadLibrary(System.java:1989)
at com.github.luben.zstd.util.Native$1.run(Native.java:69)
at com.github.luben.zstd.util.Native$1.run(Native.java:67)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at com.github.luben.zstd.util.Native.loadLibrary(Native.java:67)
at com.github.luben.zstd.util.Native.load(Native.java:154)
at com.github.luben.zstd.util.Native.load(Native.java:85)
at com.github.luben.zstd.ZstdInputStreamNoFinalizer.<init>(ZstdInputStreamNoFinalizer.java:23)
at com.github.luben.zstd.ZstdInputStream.<init>(ZstdInputStream.java:24)
at org.neo4j.dbms.archive.StandardCompressionFormat$2.decompress(StandardCompressionFormat.java:67)
at org.neo4j.dbms.archive.DumpZstdFormatV1.decompress(DumpZstdFormatV1.java:37)
at org.neo4j.dbms.archive.DumpFormatSelector.decompress(DumpFormatSelector.java:44)
at org.neo4j.dbms.archive.Loader.openArchiveIn(Loader.java:212)
at org.neo4j.dbms.archive.Loader.load(Loader.java:115)
at org.neo4j.dbms.archive.Loader.load(Loader.java:77)
at org.neo4j.commandline.dbms.LoadDumpExecutor.load(LoadDumpExecutor.java:97)
at org.neo4j.commandline.dbms.LoadDumpExecutor.execute(LoadDumpExecutor.java:74)
at org.neo4j.commandline.dbms.LoadCommand.loadDump(LoadCommand.java:197)
at org.neo4j.commandline.dbms.LoadCommand.execute(LoadCommand.java:150)
at org.neo4j.cli.AbstractCommand.call(AbstractCommand.java:92)
at org.neo4j.cli.AbstractCommand.call(AbstractCommand.java:37)
at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
at picocli.CommandLine.execute(CommandLine.java:2170)
at org.neo4j.cli.AdminTool.execute(AdminTool.java:94)
at org.neo4j.cli.AdminTool.main(AdminTool.java:82)

错误分析

  1. 配置文件被误执行:/etc/default/neo4j第22行的配置项被当作shell命令执行,说明配置文件加载逻辑异常,可能是文件格式错误或Neo4j环境变量指向错误。
  2. zstd本地库缺失:Neo4j加载备份依赖zstd压缩库的JNI绑定,系统缺少对应库文件,或/tmp目录权限不足导致无法加载临时生成的库文件。

解决方案

1. 修复配置文件加载问题

  • 检查/etc/default/neo4j第22行,确保配置项server.bolt.listen_address=0.0.0.0:7687格式正确,无多余符号(如$、!)。
  • 执行命令时手动指定正确的Neo4j主配置文件(通常为/etc/neo4j/neo4j.conf),避免错误加载/etc/default/neo4j:
    ../bin/neo4j-admin database load neo4j --from-path=./snapshot/31-5-2023/ --overwrite-destination=true --config=/etc/neo4j/neo4j.conf
    

2. 安装zstd系统依赖

  • 更新包列表并安装zstd库:
    sudo apt update && sudo apt install zstd libzstd-dev
    
  • 确保/tmp目录权限正确,允许进程写入和加载共享库:
    sudo chmod 1777 /tmp
    

3. 手动补充zstd-jni库(若上述步骤无效)

  • 下载对应amd64架构的libzstd-jni-1.5.4-2.so文件,复制到系统JNI库目录:
    sudo cp libzstd-jni-1.5.4-2.so /usr/lib/x86_64-linux-gnu/jni/
    
  • 更新系统库缓存:
    sudo ldconfig
    

4. 验证修复

执行neo4j-admin version确认无配置错误后,重新运行数据库加载命令。

内容的提问来源于stack exchange,提问作者jerryIsHere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 00:22:03