ArangoDB数据库目录已锁定

ArangoDB数据库目录已锁定,arangodb,nosql,Arangodb,Nosql,当我执行 sudo arangod或sudo服务arangodb start在我的主目录中 我收到以下信息 [2844] FATAL cannot start server: database directory is locked [2867] FATAL cannot start server: database directory is locked 如何修复此错误?通常,ArangoDB在启动时会在数据库目录中创建一个锁文件,以确保没有两个arangod进程同时在同一数据库目录上工作(

当我执行

sudo arangod
sudo服务arangodb start
在我的主目录中

我收到以下信息

[2844] FATAL cannot start server: database directory is locked
[2867] FATAL cannot start server: database directory is locked

如何修复此错误?

通常,ArangoDB在启动时会在数据库目录中创建一个锁文件,以确保没有两个arangod进程同时在同一数据库目录上工作(最有可能位于
/var/lib/ArangoDB/

看到上述错误可能有不同的原因:

另一个ArangoDB实例可能仍在运行,它使用相同的数据库目录。在这种情况下,错误消息和拒绝启动是正确的。通过发出类似于
ps fax | grep arangod
的命令,您可以尝试了解其他正在运行的
arangod
进程

如果ArangoDB未运行,则如果ArangoDB的数据库目录中存在名为
LOCK
的文件,且该文件无法通过启动的
arangod
进程读取或写入,则仍可能发生错误。在这种情况下,启动也将被拒绝。这可能是一个权限问题,但如果通过
sudo
运行该命令,则不太可能

最后一种可能性是对文件
flock()
调用因任何原因失败。在这种情况下,操作系统无法保证仅为刚刚启动的
arangod
进程锁定文件。这不会阻止其他
arangod
进程尝试并行使用相同的数据库目录,这是不安全的。因此,在这种情况下,服务器也将拒绝启动。顺便说一句,
flock
可能无法在所有文件系统上实现,因为在分布式fs中可能很难实现。但是,它应该适用于本地文件系统


如果您100%确定没有其他
arangod
实例正在运行,并且
LOCK
文件没有文件特权问题,并且错误仍然存在,您可以尝试手动从数据库目录中删除
LOCK
文件并启动服务器。

非常感谢,它工作得非常好,我运行了另一个ArangoDB实例,我正在处理你们的guesser项目,再次感谢