我做了什么
neo4j console
(工作正常)
CTRL - C
重新启动后,我上面有消息。
我删除/var/lib/neo4j/data/databases/graph.db/store_lock
然后我
Externally locked: /var/lib/neo4j/data/databases/graph.db/neostore
有清洁锁的方法吗? (没有重新安装)
答案 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 对我不起作用。
有什么帮助:
docker run --rm ... neo4j:latest neo4j-admin ...
- 这会执行一次性导入到空数据库中。没有死容器,只有外部卷中的导入数据。 (请注意,如果 db 不为空,则该命令将失败。)关键是,除非 Dockerfile 中的 CMD 为 overriden,否则 Docker 入口点会启动服务器。docker run -d ... neo4j:latest
- 运行 neo4j 服务器