如何将 GrapheneDB 数据库导入 Neo4j Desktop
这假定您已经拥有 GrapheneDB 数据库的 zip 文件。
这里的目标是将其作为一个完整的数据库导入,而不是从中提取数据到现有数据库中。
请注意,GrapheneDB 网站上已有导出说明:https://docs.graphenedb.com/docs/importing-and-exporting-databases#loading-an-exported-datastore-into-a-local-neo4j-instance
请先尝试使用这些说明,如果不起作用,则根据 GrapheneDB 数据库的 Neo4j 版本按以下步骤进行。
在 Neo4j 3.5.x 中
此版本每个 dbms 只有一个数据库,因此步骤更简单。
-
在 Neo4j Desktop 中,创建正确版本的 3.5.x 实例,但暂时不要启动它。
-
管理实例(通过右上角的
…
),然后按Open Terminal
按钮打开通往实例主目录的终端窗口。 -
在终端中执行
cd data/database
(如果您随后执行ls
,该目录应为空)。 -
将 GrapheneDB zip 文件解压到此目录,确保其结果是一个包含
neostore*
文件的graph.db
文件夹。如果需要,将顶层目录重命名为graph.db
以与默认图名称对齐(或相应调整您的配置文件中的图名称)。 -
检查解压目录的所有权权限。它们应与您在 db 主目录下执行
ls -l
时看到的所有权权限匹配。如果它们不匹配,您可能需要递归更改文件的所有权,以便 Neo4j Desktop 能够读取和写入它们:https://linuxize.com/post/linux-chown-command/ -
启动数据库。
在 Neo4j 4.x 中
Neo4j 4.x 允许每个 dbms 实例有多个数据库。因此,我们可以添加 GrapheneDB 数据库,而无需替换任何其他数据库。
我们甚至可以添加到已经存在数据库且可能正在运行的现有 dbms 实例中。
您应该有一个 zipped 数据库,您可能还有一个 transactions
zip 文件。
-
在 Neo4j Desktop 中,要么创建一个适当版本的新 dbms 实例,要么找到一个现有数据库(其次要版本与 GrapheneDB 实例的次要版本匹配),然后将数据库导入到其中。
-
管理实例(通过右上角的
…
),然后按Open Terminal
按钮打开通往实例主目录的终端窗口。 -
在终端中执行
cd data/databases
。此处可能存在其他目录,对应于该实例上的其他数据库。 -
将 GrapheneDB zip 文件解压到此目录。解压后的 zip 文件的顶层目录应具有符合 Neo4j 命名规则的唯一名称:https://neo4j.ac.cn/docs/cypher-manual/current/syntax/naming/
-
检查解压目录的所有权权限。它们应与您在 dbms 主目录下执行
ls -l
时看到的所有权权限匹配。如果它们不匹配,您可能需要递归更改文件的所有权,以便 Neo4j Desktop 能够读取和写入它们:https://linuxize.com/post/linux-chown-command/ -
(仅当包含 transactions zip 文件时)在终端中,返回 Neo4j 实例的主目录并执行
cd data/transactions
。这是存储每个数据库事务的位置。您应该看到每个数据库一个目录。 -
将 transactions zip 文件解压到此目录。解压后的 zip 文件的顶层目录应与您在步骤 4 中解压的数据库名称匹配。
-
检查解压目录的所有权权限。它们应与您在 dbms 主目录下执行
ls -l
时看到的所有权权限匹配。如果它们不匹配,您可能需要递归更改文件的所有权,以便 Neo4j Desktop 能够读取和写入它们:https://linuxize.com/post/linux-chown-command/ -
如果 Neo4j dbms 尚未启动,请启动它。
-
启动并登录后,执行
:use system
以切换到 system 数据库,在那里我们可以执行数据库管理命令。 -
使用数据库名称(在步骤 4 和 7 中用作目录名称)发出
CREATE DATABASE <dbname>
命令,将<dbname>
替换为数据库名称。这将在 system 数据库中为新数据库创建一个条目,该数据库将使用从步骤 4 和 7 中提取的数据库和事务文件。 -
您可以使用
SHOW DATABASES
来检查数据库是否已创建。 -
执行
:use <dbname>
(替换为数据库名称)以切换到该数据库。
此页面有帮助吗?