Tệp nhật ký cho bạn biết rằng bạn có "tệp khóa cũ" . MongoDB giữ một tệp khóa trong khi nó đang chạy. Nó tạo ra tệp này khi nó được khởi động và xóa nó khi nó dừng lại. Khi máy tính gặp sự cố (hoặc MongoDB bị treo, ví dụ:qua kill
), tệp này không bị xóa và do đó cơ sở dữ liệu không khởi động. Sự tồn tại của tệp này cho thấy việc tắt MongoDB không sạch.
Hai điều có thể được thực hiện:
-
Nếu đây là một máy phát triển và bạn chưa sử dụng cơ sở dữ liệu của mình (và cả các chương trình của bạn), bạn có thể xóa tệp theo cách thủ công. Đối với MongoDB 2.2.2 chạy trên Ubuntu 12.10, nó nằm trong
/var/lib/mongodb/mongod.lock
. Đối với các phiên bản khác, tệp có thể ở một đường dẫn khác hoặc có thể được đặt tên làmongo.lock
. -
Cách an toàn hơn là làm theo hướng dẫn về Độ bền và Sửa chữa của MongoDB. Tóm lại, đối với máy có cấu hình trên, bạn nên thực hiện các lệnh sau:
sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/ sudo service mongod start