MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongod се оплаква, че няма папка /data/db

Създадохте директорията на грешно място

/data/db означава, че е директно под главната директория '/', докато сте създали 'data/db' (без водещото /) вероятно точно в друга директория, като например '/root' домашната директория.

Трябва да създадете тази директория като root

Или трябва да използвате sudo , напр. sudo mkdir -p /data/db

Или трябва да направите su - за да станете суперпотребител и след това създайте директорията с mkdir -p /data/db

Забележка:

MongoDB също има опция, при която можете да създадете директорията с данни на друго място, но това като цяло не е добра идея, защото само леко усложнява неща като възстановяване на DB, защото винаги трябва да задавате db-пътя ръчно. Не бих препоръчал да правите това.

Редактиране:

съобщението за грешка, което получавате, е „Не може да се създаде/отваря заключен файл:/data/db/mongod.lock errno:13 Отказано разрешение“ . Директорията, която сте създали, изглежда няма правилните разрешения и собственост – трябва да бъде записана от потребителя, който изпълнява процеса на MongoDB.

За да видите разрешенията и собствеността върху директорията '/data/db/', направете следното:(ето как трябва да изглеждат разрешенията и собствеността)

$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/

Лявата страна 'drwxr-xr-x' показва разрешенията за потребителя, групата и други. 'mongod mongod' показва кой е собственик на директорията и на коя група принадлежи тази директория. И двете се наричат ​​'mongod' в този случай.

Ако вашата директория '/data/db' няма горните разрешения и собственост, направете това :

Първо проверете какъв потребител и група има вашият потребител на mongo:

# grep mongo /etc/passwd
mongod:x:498:496:mongod:/var/lib/mongo:/bin/false

Трябва да имате запис за mongod в /etc/passwd, тъй като това е демон.

sudo chmod 0755 /data/db
sudo chown -R 498:496 /data/db    # using the user-id , group-id

Можете също да използвате потребителското име и името на групата, както следва:(те могат да бъдат намерени в /etc/passwd и /etc/group)

sudo chown -R mongod:mongod /data/db 

това трябва да го накара да работи...

В коментарите по-долу някои хора използваха това:

sudo chown -R `id -u` /data/db
sudo chmod -R go+w /data/db

или

sudo chown -R $USER /data/db 
sudo chmod -R go+w /data/db

Недостатъкът е, че $USER е акаунт, който има обвивка за вход. Демоните в идеалния случай не трябва да имат обвивка от съображения за сигурност, затова виждате /bin/false в grep на файла с парола по-горе.

Проверете тук, за да разберете по-добре значението на разрешенията за директория:

http://www.perlfect.com/articles/chmod.shtml

Може би вижте и един от уроците, които можете да намерите чрез Google:„UNIX за начинаещи“



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Сортиране по максимално поле на масива, възходящо или низходящо

  2. Какво е TransientTransactionError в Mongoose (или MongoDB)?

  3. mongodb nodejs - преобразуваща кръгова структура

  4. Как MongoDB сортира записи, когато не е посочен ред на сортиране?

  5. Mongo DB намира по име на поле с произволна стойност