MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mongod mengeluh bahwa tidak ada folder /data/db

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"



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB di AWS:Bagaimana Cara Memilih Jenis Instans EC2 yang Tepat untuk Server MongoDB Anda?

  2. Bagaimana saya bisa membuat daftar semua koleksi di shell MongoDB?

  3. Memperbarui properti dokumen yang disematkan di Mongodb

  4. Menutupi PII di MongoDB, Cassandra, dan Elasticsearch dengan DarkShield:…

  5. Bagaimana cara MongoDB memesan dokumen mereka dalam satu koleksi?