存储及其锁定文件已被另一个进程锁定:/var/lib/neo4j/data/databases/graph.db/store_lock

时间:2017-06-26 09:59:41

标签: neo4j

我做了什么

neo4j console

(工作正常)

CTRL - C

重新启动后,我上面有消息。

我删除/var/lib/neo4j/data/databases/graph.db/store_lock

然后我

Externally locked: /var/lib/neo4j/data/databases/graph.db/neostore

有清洁锁的方法吗? (没有重新安装)

3 个答案:

答案 0 :(得分:5)

您可以终止java进程并删除store_lock文件。它似乎不会损害数据库的完整性。

答案 1 :(得分:4)

杀死Java进程并删除为我工作的store_lock

找到了挥之不去的过程,

ps aux | grep "org.neo4j.server"

杀了它,

kill -9 <pid-of-neo4js-java-process>

并删除了

sudo rm /var/lib/neo4j/data/databases/graph.db/store_lock

Allegedly,只是扼杀了挥之不去的过程可能会有所作为,但我还是继续删除锁定。

答案 2 :(得分:0)

我发现这个问题在尝试使用 neo4j-admin 工具导入 CSV 时有相同的错误消息。

就我而言,问题是我第一次启动了 neo4j 服务器:

docker run -d --name testneo4j -p7474:7474 -p7687:7687 -v /path/to/neo4j/data:/data -v /path/to/neo4j/logs:/logs -v /path/to/neo4j/import:/var/lib/neo4j/import -v /path/to/neo4j/plugins:/plugins --env NEO4J_AUTH=neo4j/test neo4j:latest

然后尝试启动导入(CSV 数据文件参见 here):

docker exec -it testneo4j neo4j-admin import --nodes=Movies=import/movies.csv --nodes=Actors=import/actors.csv --relationships=ACTED_IN=import/roles.csv

这会导致锁错误,因为服务器获取数据库锁,而neo4j-admin 是独立的工具,也需要获取数据库锁。杀戮、锁定文件删除和 sudos 对我不起作用。

有什么帮助:

  1. docker run --rm ... neo4j:latest neo4j-admin ... - 这会执行一次性导入到空数据库中。没有死容器,只有外部卷中的导入数据。 (请注意,如果 db 不为空,则该命令将失败。)关键是,除非 Dockerfile 中的 CMD 为 overriden,否则 Docker 入口点会启动服务器。
  2. docker run -d ... neo4j:latest - 运行 neo4j 服务器