Neo4j容器无法重新启动的问题!

问题现象

每次neo4j启动一段时间后,某个时间点neo4j停了就再也启动不起来了,必须要重新安装Neo4j容器才行。

当无法启动的时候,查看日志只有下面这个提示,过2-3s后就container容器就消失了,docker ps -a 结果是Exits(1),非正常退出。
2023-10-07T08:43:51.768284320Z Changed password for user 'neo4j'. IMPORTANT: this change will only take effect if performed before the database is started for the first time.

问题分析

结合网上的一些资料得到以下结论:
Neo4j容器无法启动是因为在没有停止Neo4j容器的情况下先停止了docker服务,那么后续Neo4j容器就无法启动了。

Neo4j在4以后的版本中增加了一个pid进程管理,在容器的目录/var/lib/neo4j/run下有一个neo4j.pid,如果是异常停止的,那么这个pid还存在,这样就会导致下次启动的时候启动不起来。

解决方案

修改neo4j配置文件,增加这个设置:dbms.directories.run=/run,重启容器即可解决。这个只是将文件换了一个目录,我们可以指定一个mount的目录,这样出现问题后,可以在宿主机上删除该pid文件再重启容器即可。

  • 参考:https://github.com/neo4j/neo4j/issues/12908
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用 Docker 来安装和部署多个 Neo4j 容器。下面是一个简单的步骤: 1. 确保你已经安装了 Docker。你可以在 Docker 官方网站上找到适合你操作系统的安装包,并按照说明进行安装。 2. 创建一个用于存储 Neo4j 数据的目录。在命令行中执行以下命令: ``` mkdir neo4j-data ``` 3. 创建一个自定义的 Docker 网络,以便容器之间可以相互通信。在命令行中执行以下命令: ``` docker network create neo4j-network ``` 4. 使用 Docker 运行多个 Neo4j 容器。执行以下命令创建第一个容器: ``` docker run -d --name neo4j1 --network neo4j-network -p 7474:7474 -p 7687:7687 -v $PWD/neo4j-data:/data -e NEO4J_AUTH=neo4j/password neo4j:latest ``` 这将创建一个名为 `neo4j1` 的容器,并将它与 `neo4j-network` 网络连接。容器的 7474 和 7687 端口将映射到主机上,你可以使用这些端口访问 Neo4j 的 Web 界面和 Bolt 协议。 5. 创建更多的容器,可以使用类似的命令,只是需要调整容器名称和端口映射。例如: ``` docker run -d --name neo4j2 --network neo4j-network -p 7475:7474 -p 7688:7687 -v $PWD/neo4j-data:/data -e NEO4J_AUTH=neo4j/password neo4j:latest ``` 这将创建一个名为 `neo4j2` 的容器,并将它与 `neo4j-network` 网络连接。容器的 7475 和 7688 端口将映射到主机上。 你可以根据需要创建更多的容器,并根据你的需求进行配置。确保每个容器的名称、端口映射和数据目录都不冲突。 希望这些步骤对你有所帮助!如果你有任何其他问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值