Neo4j 未运行

问题描述 投票:0回答:8

当我运行命令“neo4j status”或“neo4j stop”时,它显示“Neo4j not running”,但是浏览器可以访问,我可以在数据库上执行所有事务。 当我在 neo4j.conf 上更改数据库并运行 neo4j start 时,数据库也不会更改。

neo4j
8个回答
3
投票

谢谢Govind,你给了我一个开始,我想我发现了问题,因为我不知道neo4j正在以与/var/run/neo4j/neo4j.txt中生成的不同的某个pid运行。 pid,当我用正在运行的程序覆盖 neo4j.pid 时,我能够停止 Neo4j 并启动一个干净的进程。


1
投票

我使用最新的 GCP 公共映像

neo4j-community-1-4-3-6-apoc
遇到了这个问题,该映像使用的是 Neo4j Community 4.3.6。

启动行为是status命令认为Neo4j没有运行:

$ /usr/share/neo4j/bin/neo4j status
Neo4j is not running.

因此,尝试

stop
不会执行任何操作,因为系统认为它一开始就没有运行:

$ sudo /usr/share/neo4j/bin/neo4j stop
Neo4j is not running.

但应用程序显然正在运行,如

curl
输出所示:

$ curl http://localhost:7474/
{
  "bolt_routing" : "neo4j://localhost:7687",
  "transaction" : "http://localhost:7474/db/{databaseName}/tx",
  "bolt_direct" : "bolt://localhost:7687",
  "neo4j_version" : "4.3.6",
  "neo4j_edition" : "community"
}

Neo4j 也清晰地出现在正在运行的进程列表中(下面的截断输出):

$ ps -U neo4j -u neo4j u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
neo4j     1021  0.1  2.9 2202544 111492 ?      Ssl  16:21   0:05 /usr/bin/java -Xmx...
neo4j     1615  1.1 16.6 3269476 625720 ?      Sl   16:21   0:52 /usr/lib/jvm/java-...

要解决此问题,请首先创建缺少的运行目录并将目录所有者设置为

neo4j
用户:

sudo mkdir /var/run/neo4j
sudo chown neo4j /var/run/neo4j

然后通过发送中断(-2)信号来停止neo4j的运行实例:

sudo kill -2 1021

再次检查

ps
以验证其是否有效:

$ ps -U neo4j -u neo4j u

启动该进程,以

neo4j
用户身份运行它(同时,设置
NEO4J_CONF
shell 变量指向
neo4j.conf
所在的目录):

$ sudo -u neo4j env NEO4J_CONF=/etc/neo4j sh -c '/usr/share/neo4j/bin/neo4j start'

验证 neo4j 是否正在运行,检查活动进程(截断的输出):

$ ps -U neo4j -u neo4j u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
neo4j     3803 14.9 15.5 3250848 587740 pts/0  Sl   17:47   0:22 /usr/lib/jvm/java-...

最后,验证

status
现在是否正确符合现实:

$ /usr/share/neo4j/bin/neo4j status
Neo4j is running at pid 3803

0
投票

听起来您运行

neo4j status
neo4j stop
命令的计算机与您正在使用的 Neo4j 浏览器服务运行的计算机不同。

如果你想控制neo4j浏览器服务,你需要在正确的机器上运行这些命令。


0
投票

您是否以root用户身份运行neo4j状态? 有时,当您以非 root 用户身份运行 neo4j status 并以非 root 用户身份启动它时,它会给您该消息。


0
投票

我正在使用“Ubuntu 18.04.3 LTS”和“neo4j-community-3.5.8”。当我进入neo4j的主目录(我直接从网站下载)


0
投票

我刚刚偶然发现了同样的问题,即 neo4j 进程正在运行,但

neo4j status
却说不然。

就我而言,这是由于初始安装/配置期间发生的意外,导致没有创建运行文件夹:

/var/run/neo4j
。由于这是 Neo4j PID 文件的存储位置,因此它会导致
neo4j status
认为该进程没有运行,尽管实际上它是运行的。

我能够通过手动终止进程并再次启动 Neo4j 来确认行为,之后我收到了:

....
Starting Neo4j.
/usr/share/neo4j/bin/neo4j: line 451: /var/run/neo4j/neo4j.pid: No such file or directory

通过简单的操作为 Neo4j 创建运行文件夹后,问题就消失了:

(sudo) mkdir /var/run/neo4j

0
投票

我看到这个错误是因为我已经使用官方仓库中的 maven 构建了 neo4j zip。后来我在这里下载了预构建的 zip:http://dist.neo4j.org/neo4j-community-3.15.0-windows.zip,这个使用了所有相同的步骤。

Neo4j 浏览器在我的情况下无法访问,但 http 端点正在工作。


0
投票

如果您的neo4j无法在桌面上运行。您可以虚拟地使用它。

  1. 你应该下载 Docker
  2. 在您的 PC 上安装 docker。
  3. 打开 CMD,输入以下命令 docker run --name neo4j -e NEO4J_AUTH=neo4j/s3cr3t -p 7474:7474 -p 7687:7687 neo4j
  4. 打开 Docker 并运行 Neo4j。
© www.soinside.com 2019 - 2024. All rights reserved.