无法使用创建的neo4j数据库

问题描述

我创建了一个 neo4j 数据库,该数据库运行良好。

但是现在,当我尝试使用由我创建的数据库时,请使用以下命令:

:USE foo;

它给出了错误

Unable to get a routing table for database 'foo' because this database is unavailable

我尝试使用命令检查数据库的状态:

SHOW DATABASE foo;

它将foo的currentStatus显示为“ offline”。我曾尝试使用

启动数据库
START DATABASE foo;

但没有运气!

尽管如此,我可以使用认的“ neo4j”和“ system数据库。只有我创建的新数据库现在无法正常工作。

如果有人知道解决方案,请提供帮助。

解决方法

尝试

CREATE DATABASE foo

然后启动

,

我终于设法解决了这个问题。这是由于文件/var/lib/neo4j/data/transactions/foo/neostore.transaction.db.26的文件许可。

用户neo4j可能以某种方式失去了对该文件的访问权限。我查看了调试日志文件/var/log/neo4j/debug.log,发现了异常消息java.nio.file.AccessDeniedException: /var/lib/neo4j/data/transactions/foo/neostore.transaction.db.26,然后使用以下命令更改了neo4j用户的文件许可权:

chown neo4j /var/lib/neo4j/data/transactions/foo//neostore.transaction.db.26

此后,我启动了数据库,它开始工作了

,

neostore.transaction.db.0 文件从现有的 data/transactions/neo4j 文件夹复制到您自己的 db data/transactions/<your_db> 文件夹。