Не удалось создать/открыть файл блокировки:/data/mongod.lock errno: 13 Разрешено отклонение

Как мне заставить монго использовать смонтированный диск на ec2? Я действительно не понимаю. Я приложил том на ec2 отформатировал диск как root и начал с root, но все же, как root, я не могу получить доступ? Я бегу на ubuntu 12.04. Ни одно другое манго не работает

Я вижу, что mongo создал db файл в /data i.e./data/db

cd /
ls -al
drwxr-xr-x  4 root root  4096 Mar  5 16:28 data

cd /data
ls -al
total 28
drwxr-xr-x  4 root root  4096 Mar  5 16:28 .
drwxr-xr-x 24 root root  4096 Mar  5 16:28 ..
drwxr-xr-x  2 root root  4096 Mar  5 16:28 db
drwx------  2 root root 16384 Mar  5 16:20 lost+found


sudo mkfs.ext3 /dev/xvdh
sudo mkdir /data
sudo su - -c 'echo "/dev/xvdh %s auto noatime 0 0" | sudo tee -a /etc/fstab'
sudo mount /data

sudo service mongodb start
mongodb start/running, process 17169

sudo ps -ef | grep mongod
ubuntu   15763 15634  0 16:32 pts/2    00:00:00 tail -f mongodb.log
ubuntu   18049 15766  0 16:43 pts/3    00:00:00 grep --color=auto mongod


Tue Mar  5 16:33:15 [initandlisten] MongoDB starting : pid=15890 port=27017 dbpath=/data 64-bit host=aws-mongo-server-east-staging-20130305161917
Tue Mar  5 16:33:15 [initandlisten] db version v2.2.3, pdfile version 4.5
Tue Mar  5 16:33:15 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08
Tue Mar  5 16:33:15 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Tue Mar  5 16:33:15 [initandlisten] options: { bind_ip: "10.157.60.27", config: "/etc/mongodb.conf", dbpath: "/data", logappend: "true", logpath: "/var/log/mongodb/mongodb.log", replSet: "heythat" }
Tue Mar  5 16:33:15 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Tue Mar  5 16:33:15 dbexit: 
Tue Mar  5 16:33:15 [initandlisten] shutdown: going to close listening sockets...
Tue Mar  5 16:33:15 [initandlisten] shutdown: going to flush diaglog...
Tue Mar  5 16:33:15 [initandlisten] shutdown: going to close sockets...
Tue Mar  5 16:33:15 [initandlisten] shutdown: waiting for fs preallocator...
Tue Mar  5 16:33:15 [initandlisten] shutdown: lock for final commit...
Tue Mar  5 16:33:15 [initandlisten] shutdown: final commit...
Tue Mar  5 16:33:15 [initandlisten] shutdown: closing all files...
Tue Mar  5 16:33:15 [initandlisten] closeAllFiles() finished
Tue Mar  5 16:33:15 [initandlisten] shutdown: removing fs lock...
Tue Mar  5 16:33:15 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Tue Mar  5 16:33:15 dbexit: really exiting now

Ниже, если я перезапущу, когда я удаляю файл блокировки....

Tue Mar  5 16:59:15 [initandlisten] MongoDB starting : pid=21091 port=27017 dbpath=/data 64-bit host=aws-mongo-server-east-staging-20130305161917
Tue Mar  5 16:59:15 [initandlisten] db version v2.2.3, pdfile version 4.5
Tue Mar  5 16:59:15 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08
Tue Mar  5 16:59:15 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Tue Mar  5 16:59:15 [initandlisten] options: { bind_ip: "10.157.60.27", config: "/etc/mongodb.conf", dbpath: "/data", logappend: "true", logpath: "/var/log/mongodb/mongodb.log", replSet: "heythat" }
Tue Mar  5 16:59:15 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Tue Mar  5 16:59:15 dbexit: 
Tue Mar  5 16:59:15 [initandlisten] shutdown: going to close listening sockets...
Tue Mar  5 16:59:15 [initandlisten] shutdown: going to flush diaglog...
Tue Mar  5 16:59:15 [initandlisten] shutdown: going to close sockets...
Tue Mar  5 16:59:15 [initandlisten] shutdown: waiting for fs preallocator...
Tue Mar  5 16:59:15 [initandlisten] shutdown: lock for final commit...
Tue Mar  5 16:59:15 [initandlisten] shutdown: final commit...
Tue Mar  5 16:59:15 [initandlisten] shutdown: closing all files...
Tue Mar  5 16:59:15 [initandlisten] closeAllFiles() finished
Tue Mar  5 16:59:15 [initandlisten] shutdown: removing fs lock...
Tue Mar  5 16:59:15 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Tue Mar  5 16:59:15 dbexit: really exiting now

Ответ 1

У меня была такая же проблема на экземпляре ec2 Ubuntu. Я следил за этой статьей Amazon на странице 7:

http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf

Путь Mongodb в /etc/mongodb.conf был установлен в /var/lib/mongodb (основное место установки и работа). Когда я перешел на /data/db (объем EBS), я получал "errno: 13 Permission denied".

  • Сначала я запустил sudo service mongodb stop.
  • Затем я использовал ls -la, чтобы узнать, какая группа и владелец mongodb назначены /var/lib/mongodb (существующий путь), и я изменил /data/db (новый путь) с помощью chown и chgrp для соответствия. (пример: sudo chown -R mongodb:mongodb /data/db)
  • Затем я обновил путь в etc/mongodb.conf до /data/db и удалил старые файлы mongo в каталоге /var/lib/mongodb.
  • Затем я запустил sudo service mongodb start и подождал около минуты. Если вы попытаетесь подключиться к 27017 немедленно, вы не сможете.
  • После минутной проверки /data/db (объем EBS) и монго должны были помещаться журнал, mongod.lock, local.ns, local.0 и т.д. Если не попробовать sudo service mongodb restart и проверить минуту спустя.

Я просто потратил более часа на это. Изменение группы и удаление старых файлов, вероятно, не обязательно, но то, что сработало для меня.

Это отличное видео об установке объема ebs в экземпляр ec2:

http://www.youtube.com/watch?v=gBII3o3BofU

Ответ 2

Я использую этот метод для решения проблемы:

sudo chown -R mongodb:mongodb /data/db

Ответ 3

В моем случае (экземпляр AWS EC2, Ubuntu) помог:

$ sudo mkdir -p /data/db/
$ sudo chown `USERNAME` /data/db

И после этого все сработало нормально.

Ответ 4

Вам просто нужно предоставить доступ к вашей папке /data/db.

Введите sudo chown -R <USERNAME> /data/db, замените <USERNAME> на свое имя пользователя.

Вы можете найти свое имя пользователя, набрав whoami.

Ответ 5

Я установил mongodb с EBS на EC2 с Ubuntu 14.04 после этого урока:

http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/

Но вместо предложенного chown я сделал:

sudo chown -R mongodb:mongodb /data /log /journal

Чтобы устранить проблему

Ответ 6

У меня была аналогичная проблема, фактическая причина заключалась в том, что сеанс mongod уже выполнялся с моей предыдущей попытки.

Я побежал

killall mongod

и все остальное выполнялось так, как ожидалось.

Команда

killall отправит сигнал TERM ко всем процессам с реальным UID. Таким образом, это убивает все запущенные экземпляры mongod, чтобы вы могли начать свой собственный.

Ответ 7

У меня была аналогичная проблема, и я выполнил все приведенные выше инструкции относительно смены владельцев, использующих sudo chown и т.д. У меня все еще был экземпляр mongodb, работающий в фоновом режиме после изменений. Запуск

ps auxw | grep mongo 

показал мне другие задачи, используя mongo, работающие в фоновом режиме, которые не были закрыты должным образом. Затем я побежал на всех запущенных, а затем смог запустить свой сервер.

Ответ 8

Для пользователей Mac:
Запустите ls -ld/data/db/
Выход должен быть чем-то вроде drwrx-xr-x 20 singh wheel 680 21 июл 05:49/data/db/
Где singh - владелец и колесо - это группа, к которой принадлежит.
Run sudo chown -R singh: wheel/data/db
Запустите mongod

Ответ 9

На сегодняшний день я попытался пробиться через , чтобы создать/открыть файл блокировки:/data/db/mongod.lock errno: 13 Разрешено исключение Является ли экземпляр mongod уже запущенным?, завершение, и попытался ответить на все выше сказанное, чтобы решить эту проблему, поэтому ничего не получилось, добавив

sudo chown -R mongodb: mongodb/data/db

Если я не добавил свое текущее разрешение пользователя к пути местоположения на

sudo chown $USER/data/db

Надеюсь, это поможет кому-то. Также я только что установил Mongo DB на свой пи. Ура!

Ответ 10

Удаление файла mongodb.lock не было проблемой в моем случае. Я сделал это и получил сообщение об использовании порта: [initandlisten] listen(): bind() failed errno: 98 Адрес уже используется для сокета: 0.0.0.0:27017. Я нашел другое решение здесь: не удалось запустить локальный сервер mongodb с инструкциями по уничтожению процесса:

  • Узнайте из netstat, в каком процессе выполняется порт mongodb (27017)

    sudo netstat -tulpn | grep :27017

    Выход будет: tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1412/mongod

  • Убейте соответствующий процесс.

    sudo kill 1412 (замените 1412 вашим идентификатором процесса, найденным на шаге 1)

И мне удалось снова запустить mongodb. Я считаю, что мой все еще работал от неправильного закрытия.

Ответ 11

Для тех, кто испытывает эту ошибку в Windows с помощью диспетчера задач, запускается экземпляр "mongod.exe", который запущен. После этого навсегда удалите файл mongo.lock и запустите mongod.exe. После этого он должен работать отлично.

Ответ 12

Мое монго (3.2.9) было установлено на Ubuntu, а мой файл журнала имел следующие строки:

2016-09-28T11:32:07.821+0100 E STORAGE  [initandlisten] WiredTiger (13) [1475058727:821829][6785:0x7fa9684ecc80], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.turtle: handle-open: open: Permission denied 
2016-09-28T11:32:07.822+0100 I -        [initandlisten] Assertion: 28595:13: Permission denied 
2016-09-28T11:32:07.822+0100 I STORAGE  [initandlisten] exception in initAndListen: 28595 13: Permission denied, terminating

2016-09-28T11: 32: 07.822 + 0100 я CONTROL [initandlisten] dbexit: rc: 100

Таким образом, проблема заключалась в разрешении на папку /var/lib/mongodb.

sudo chown -R mongodb:mongodb /var/lib/mongodb/
sudo chmod -R 755 /var/lib/mongodb
  • Перезагрузите сервер

Исправлено, хотя я понимаю, что может быть не слишком безопасным (это мой собственный блок разработчика, который я в моем случае), бит, следующий за изменением как db, так и аутентификации.

Ответ 13

В Mycase
В версии mongodb версии 2.6.11 директория databse по умолчанию - /var/lib/mongodb/

  • $sudo chown -R id -u/var/lib/mongodb/

  • $sudo chown -R id -u/var/lib/mongodb/mongod.lock

  • $ sudo /etc/init.d/mongod stop

  • $ sudo /etc/init.d/mongod start

Ответ 14

На Fedora 18 с экземпляром Mongo 2.2.4 мне удалось обойти подобную ошибку, отключив SELinux, вызвав setenforce 0 как root.

Кстати, это была корпоративная среда, а не экземпляр Amazon EC2, но симптомы были похожи.

Ответ 15

В моем случае проблема была решена путем удаления файла журнала.

sudo rm /log/mongod.log

Хотя сообщение об ошибке относится конкретно к файлу lock:

exception in initAndListen: 10309 Unable to create/open lock file: 
/data/mongod.lock errno:13 Permission denied 
Is a mongod instance already running?, terminating

Ответ 16

После того, как я убил mongod, у меня была такая же проблема: не удалось запустить mongod.

$> sudo kill `pidof mongod`

2015-08-03T05:58:41.339+0000 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/mongodbtest/replset/data/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

После того, как я удалю блокировку напрямую, я могу перезапустить процесс mongod.

$>  rm -rf /data/mongodbtest/replset/data/mongod.lock

Ответ 17

Вот что я сделал, чтобы исправить проблему:

$sudo mkdir -p/data/db

$export PATH =/usr/local/Cellar/mongodb/3.0.7/bin: $PATH

$sudo chown -R id -u/data/db

а затем запустите mongo...

$mongod

Ответ 18

Do ls -la знать пользователя и группу /var/log/mongodb. Тогда do sudo chown -R user:group /data/db Теперь запустите sudo service mongodb start. Проверьте состояние с помощью sudo service mongodb status

Ответ 19

В окнах убедитесь, что консоль запущена как aministrator

Ответ 20

После всего этого просто перезагрузка компьютера - это трюк для меня.

Ответ 21

У меня была та же проблема.

Я решил это, изменив статус selinux на permissive с помощью команды ниже:

setenforce 0

Ответ 22

Вы можете попробовать этими способами. Первый.

sudo chown -R mongod:mongod/data/db

но иногда это бесполезно. Второй. Если описанный выше способ бесполезен, попробуйте сделать это:

mkdir/data/db # как путь к хранилищу базы данных

nohup mongod --dbpath/data/db &

или введите:

mongod --dbpath/data/db

получить выходной поток

Ответ 23

Для меня на CentOS 6.x:

sudo chown -R mongodb:mongodb <db-path> sudo service mongod restart

И я установил пользовательский db-path в /etc/mongod.conf.

Ответ 24

Если вам буквально нужна строка, эквивалентная командам в исходном вопросе, вы можете использовать псевдоним:

mongo --eval "db.getSiblingDB('admin').shutdownServer()"

fooobar.com/questions/61600/...

Ответ 25

В Centos Server

это работает для меня

chown -R mongod:mongod /var/lib/mongo

Ответ 26

У меня возникла такая же проблема, когда я запустил команду mongod после ее установки на Windows10. Я остановил службу mongodb и начал ее снова. Работать как шарм

Команда для остановки службы mongodb (в Windows): net stop mongodb

Команда для запуска сервера mongodb: mongod --dbpath PATH_TO_DATA_FOLDER

Ответ 27

Исправить: sudo mongod

У меня была та же проблема: я запустил mongod с привилегиями sudo. Исходя из среды Windows, я использовал просто mongod для запуска демона, похоже, нам нужны привилегии суперпользователя для доступа к /data/db.

Вы также можете дать пользователям без полномочий root чтение и запись для этого пути. проверьте ответы выше для руководства!

Ответ 28

Каждый раз, когда вы пытаетесь запустить Mongod просто введите

sudo mongod

или если вы хотите навсегда это исправить, просто попробуйте передать права доступа rwx в папку /data/db

 chmod +rwx data/