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项目,再次感谢