数据库'neo4j'不可用。无法重置neo4j数据库。

5

我在Ubuntu命令行中安装了Neo4j服务,版本为4.1.1,并在我的Windows机器上运行。我已经使用Neo4j快一个月或两个月了,但最近它阻止了我访问数据库,在Neo4j浏览器中会显示:

Database 'neo4j'不可用。运行:sysinfo以获取更多信息。

我尝试过卸载并重新安装Neo4j,但这也没有起作用。我之前试过更改默认的监听地址,但现在重新安装后所有配置数据都恢复正常。在bin目录下运行./neo4j-community-4.1.1/bin/cypher-shell无法工作。它会显示:

Unable to establish connection in 3000ms

如果我运行./neo4j-community-4.1.1/bin/cypher-shell -a 192.168.0.19,则会显示:

Database 'neo4j'不可用

当我运行./neo4j-community-4.1.1/bin/neo4j-admin check-consistency --database=neo4j时,它也会显示:

.2020-08-18 22:12:16.868+0000 WARN [o.n.c.ConsistencyCheckService] Index was dirty on startup which means it was not shutdown correctly and need to be cleaned up with a successful recovery. Index file: /home/thomp105/neo4j-community-4.1.1/data/databases/neo4j/neostore.relationshipgroupstore.db.id.

我希望能够从头开始重置所有内容,但我不确定如何操作。此时,我甚至无法在localhost:7474上访问浏览器,它无限期地挂起并尝试加载。

我真的很困惑。有人对如何解决这个问题有什么建议吗?

4个回答

5

我在一台Linux服务器上遇到了这个问题。虽然服务器正在运行,但在任何查询中都会出现以下错误:Database 'neo4j' is unavailable. 为了排除故障,我运行了sudo neo4j console,问题就解决了。但当我以ne04j用户身份运行控制台时,问题又出现了。

$ /usr/share/neo4j/bin/neo4j console
Directories in use:
  home:         /var/lib/neo4j
  config:       /etc/neo4j
  logs:         /var/log/neo4j
  plugins:      /var/lib/neo4j/plugins
  import:       /var/lib/neo4j/import
  data:         /var/lib/neo4j/data
  certificates: /var/lib/neo4j/certificates
  run:          /var/run/neo4j

所以我尝试了:sudo chown -R neo4j:neo4j /var/lib/neo4j/data,问题得到解决。显然,在恢复数据库时,我曾经以root用户身份运行过neo4j服务器,而当系统运行neo4j时,它会作为用户neo4j运行,因此无法读取任何数据。看起来,这样的错误应该有一个易于解析的错误消息,但详细程度不是neo4j的方式。


3

没有看到你的系统,很难猜测问题所在,但我可以问一下是否可以尝试从磁盘上删除默认的数据库 neo4j(例如 rm -rf /home/thomp105/neo4j-community-4.1.1/data/databases/neo4j/),然后尝试创建具有不同名称的另一个数据库(打开 neo4j.conf,搜索 dbms.active_database ,该指向默认的数据库,将其更改为其他名称)?


2
对于社区版,没有dbms.active_database选项,但需要结束端口7474的进程并删除数据库。连接到端口7474不会立即失败,这意味着它挂起了。尝试使用taskkill结束进程无效,因此我需要下载“Process Hacker”。在命令行中运行netstat -ano | findstr:7474。从process hacker中找到所有来自命令的进程并结束它们。按照您的建议删除neo4j-community/data/databases/neo4j下的neo4j数据库(或备份),然后再次运行neo4j。将此留在此处以供遇到相同问题的任何人参考。 - lovgrandma

0

我注意到一个情况,当在UI上选择neo4j数据库时,我无法成功运行“start database neo4j”。在这种情况下,我得到了“Database 'neo4j' is unavailable. Run :sysinfo for more info.”的错误提示。将选定的数据库从neo4j切换到system后,“start database neo4j”成功运行。

** 我认识到给/data文件夹授权是必要的。在运行chmod命令之后,前面的答案可以正常工作。


0
当我开始启动neo4j EC2实例时,neo4j浏览器显示: neo4j数据库离线状态。Neo4j数据库不可用。
我尝试从EC2控制台启动,问题得到解决。
[root@xxxxxxxxxxxxxx ~]# neo4j restart 停止Neo4j....已停止。 正在使用的目录: home:/var/lib/neo4j config:/etc/neo4j logs:/var/log/neo4j plugins:/var/lib/neo4j/plugins import:****** 数据:/var/lib/neo4j/data 证书:/var/lib/neo4j/certificates 许可:/var/lib/neo4j/licenses 运行:/var/lib/neo4j/run 启动Neo4j。 已启动neo4j (pid:18525)。它可以在http://0.0.0.0:7474找到 服务器准备就绪可能会有短暂的延迟。
名称 类型 别名 访问 地址 角色 写入者 请求状态 当前状态 状态消息 默认主页
"

"neo4j" "standard" [] "read-write" "localhost:7687" "primary" true "online" "online" "" true true

" 转化为中文: "

“neo4j”“standard” []“读写”“localhost:7687”“主要”的true“在线”“在线”“”true true "


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接