Anda membuat direktori di tempat yang salah
/data/db berarti berada langsung di bawah direktori root '/', sedangkan Anda membuat 'data/db' (tanpa awalan /) mungkin hanya di dalam direktori lain, seperti direktori home '/root'.
Anda perlu membuat direktori ini sebagai root
Entah Anda perlu menggunakan sudo
, misalnya sudo mkdir -p /data/db
Atau Anda perlu melakukan su -
untuk menjadi superuser, lalu buat direktori dengan mkdir -p /data/db
Catatan:
MongoDB juga memiliki opsi di mana Anda dapat membuat direktori data di lokasi lain, tetapi itu umumnya bukan ide yang baik, karena hanya sedikit memperumit hal-hal seperti pemulihan DB, karena Anda selalu harus menentukan jalur db secara manual. Saya tidak akan merekomendasikan melakukan itu.
Sunting:
pesan kesalahan yang Anda dapatkan adalah "Tidak dapat membuat/membuka file kunci:/data/db/mongod.lock errno:13 Izin ditolak" . Direktori yang Anda buat tampaknya tidak memiliki izin dan kepemilikan yang benar -- direktori tersebut harus dapat ditulis oleh pengguna yang menjalankan proses MongoDB.
Untuk melihat izin dan kepemilikan direktori '/data/db/', lakukan ini:(seperti inilah tampilan izin dan kepemilikannya)
$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/
Sisi kiri 'drwxr-xr-x' menunjukkan izin untuk Pengguna, Grup, dan Lainnya. 'mongod mongod' menunjukkan siapa yang memiliki direktori, dan grup mana direktori itu berada. Keduanya disebut 'mongod' dalam kasus ini.
Jika direktori '/data/db' Anda tidak memiliki izin dan kepemilikan di atas, lakukan ini :
Pertama, periksa pengguna dan grup apa yang dimiliki pengguna mongo Anda:
# grep mongo /etc/passwd
mongod:x:498:496:mongod:/var/lib/mongo:/bin/false
Anda harus memiliki entri untuk mongod di /etc/passwd , karena ini adalah daemon.
sudo chmod 0755 /data/db
sudo chown -R 498:496 /data/db # using the user-id , group-id
Anda juga dapat menggunakan nama pengguna dan nama grup, sebagai berikut:(mereka dapat ditemukan di /etc/passwd dan /etc/group )
sudo chown -R mongod:mongod /data/db
yang seharusnya membuatnya bekerja..
Dalam komentar di bawah, beberapa orang menggunakan ini:
sudo chown -R `id -u` /data/db
sudo chmod -R go+w /data/db
atau
sudo chown -R $USER /data/db
sudo chmod -R go+w /data/db
Kerugiannya adalah $USER adalah akun yang memiliki shell login.Daemon idealnya tidak memiliki shell untuk alasan keamanan, itulah mengapa Anda melihat /bin/false di grep file password di atas.
Periksa di sini untuk lebih memahami arti dari izin direktori:
http://www.perlfect.com/articles/chmod.shtml
Mungkin juga lihat salah satu tutorial yang dapat Anda temukan melalui Google:"UNIX untuk pemula"