運(yùn)行 MongoDB,常常出現(xiàn)莫名其妙的錯(cuò)誤,這里以Mac OS 為例,列舉下常見的報(bào)錯(cuò)信息,及其應(yīng)對策略
問題: MongoDB在沒有參數(shù)的情況下默認(rèn)會使用/data/db目錄,并監(jiān)聽27017端口。
如果該目錄不存在或者不可寫,服務(wù)器也會啟動失敗。
解決方法: 創(chuàng)建 /data/db 文件夾 (注意,這是一個(gè)文件夾),同時(shí)設(shè)置訪問權(quán)限
$ sudo mkdir -p /data/db/
$ sudo chown -R <USERNAME> /data/db
在Mac 終端窗口,輸入: $ sudo mongod 出現(xiàn)以下錯(cuò)誤提示:
Unable to create/open lock file: /data/mongod.lock errno:13 Permission denied
這是訪問權(quán)限問題。 需要打開 /data/db的訪問權(quán)限:
$ sudo mkdir -p /data/db/
$ sudo chown -R <USERNAME> /data/db
chown 意思是 change owner,改變權(quán)限。
注意,這里的<USERNAME> 要改換為你的用戶名。 查看你的用戶名的方法:
$ whom
如果用戶名是 susan, 就這么寫:
$ sudo chown -R susan /data/db
exception in initAndListen: 98 Unable to lock file: /data/db/mongod.lock Resource temporarily unavailable. Is a mongod instance already running?, terminating
表明已經(jīng)有一個(gè)MongoDB程序在后臺運(yùn)行。找到 mongod 的 pid ,然后,kill 掉即可。
查找已在運(yùn)行的mongod 的PID 的方法:
ps wuax

這里的 1959 就是 mongod 的 pid。再來執(zhí)行:
sudo kill 1959
這時(shí)候,再來啟動mongoDB 數(shù)據(jù)庫,就可以正常啟動了。
sudo mongod
數(shù)據(jù)庫正常啟動后,終端窗口的最后一行應(yīng)顯示這樣的提示信息。此時(shí)不再接受其他指令的輸入, 除非 Ctrl + C , 停止服務(wù)。
waiting for connections on port 27017