问题描述
但是现在,当我尝试使用由我创建的数据库时,请使用以下命令:
: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>
文件夹。