知识库

如何将 GrapheneDB 数据库导入 Neo4j Desktop

此假设您已经拥有 GrapheneDB 数据库的 zip 文件。

此处的目标是将其作为完整数据库导入,而不是将数据提取到已有数据库中。

请先尝试使用上述方法;如果无效,请根据 GrapheneDB 数据库的 Neo4j 版本按以下步骤操作。

在 Neo4j 3.5.x 中

在此版本中,每个 DBMS 仅有一个数据库,因此步骤更简单。

  1. 在 Neo4j Desktop 中,创建对应 3.5.x 版本的实例,但不要立即启动。

  2. 管理该实例(通过右上角的 …​),并点击 Open Terminal 按钮打开指向实例主目录的终端窗口。

  3. 在终端中执行 cd data/database(随后若执行 ls,该目录应为空)。

  4. 将 GrapheneDB zip 文件解压到该目录,确保得到一个包含 neostore* 文件的 graph.db 文件夹。如有必要,请将顶层目录重命名为 graph.db,以匹配默认图名称(或相应地在配置文件中调整图名称)。

  5. 检查解压后目录的所有权和权限。它们应与在数据库主目录执行 ls -l 时看到的所有权匹配。如果不匹配,可能需要递归更改文件所有权,以便 Neo4j Desktop 能读取和写入它们: https://linuxize.com/post/linux-chown-command/

  6. 启动数据库。

在 Neo4j 4.x 中

Neo4j 4.x 支持每个 DBMS 实例拥有多个数据库。因此我们可以添加 GrapheneDB 数据库,而无需替换其他数据库。

我们甚至可以向已有数据库的现有 DBMS 实例中添加,且该实例可能已经在运行。

您应该拥有已压缩的数据库文件,且可能还有一个 transactions zip 包。

  1. 在 Neo4j Desktop 中,创建相应版本的新 DBMS 实例,或者找到一个已有的数据库(其次版本号与 GrapheneDB 实例相匹配),在其中导入数据库。

  2. 管理该实例(通过右上角的 …​),并点击 Open Terminal 按钮打开指向实例主目录的终端窗口。

  3. 在终端中执行 cd data/databases。此处可能还有其他目录,对应实例上的其他数据库。

  4. 将 GrapheneDB zip 文件解压到该目录。展开后的 zip 顶层目录应拥有符合 Neo4j 命名规则的唯一名称: /docs/cypher-manual/current/syntax/naming/

  5. 检查解压后目录的所有权和权限。它们应与在 DBMS 主目录执行 ls -l 时看到的所有权匹配。如果不匹配,可能需要递归更改文件所有权,以便 Neo4j Desktop 能读取和写入它们: https://linuxize.com/post/linux-chown-command/

  6. (仅当您包含了 transactions zip 时)在终端回到 Neo4j 实例的主目录并执行 cd data/transactions。这里存放每个数据库的事务文件,您应看到每个数据库对应的目录。

  7. 将 transactions zip 文件解压到该目录。展开后的 zip 顶层目录名称应与步骤 4 中解压的数据库目录名称相匹配。

  8. 检查解压后目录的所有权和权限。它们应与在 DBMS 主目录执行 ls -l 时看到的所有权匹配。如果不匹配,可能需要递归更改文件所有权,以便 Neo4j Desktop 能读取和写入它们: https://linuxize.com/post/linux-chown-command/

  9. 如果 Neo4j DBMS 尚未启动,请启动它。

  10. 启动并登录后,执行 :use system 切换到系统数据库,以便执行数据库管理命令。

  11. 使用步骤 4 与步骤 7 中的目录名称作为数据库名称,执行 CREATE DATABASE <dbname>(将 <dbname> 替换为实际的数据库名)。这将在系统库中创建相应的条目,并使用步骤 4 与步骤 7 中解压的数据库和事务文件。

  12. 可使用 SHOW DATABASES 检查数据库是否已创建。

  13. 执行 :use <dbname>(将 <dbname> 替换为数据库名)切换到该数据库。

© . This site is unofficial and not affiliated with Neo4j, Inc.