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



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



Я вижу, что монго сделал' db ' dir в /data т. е. /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
563   24  

24 ответов:

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

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

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

  1. сначала я побежал sudo service mongodb stop.
  2. тогда я использовал ls -la посмотреть какая группа и владелец mongodb назначены /var/lib/mongodb (существующий путь) и я поменял /data/db (новый путь) с chown и chgrp в матче. (пример: sudo chown -R mongodb:mongodb /data/db)
  3. затем я обновил путь в etc/mongodb.conf до /data/db и удалил старые файлы монго в

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

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

в моем случае (AWS EC2 instance, Ubuntu) помогло:

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

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

вы просто должны дать доступ к вашей .

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

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

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

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

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

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

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

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

ps auxw | grep mongo 

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

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

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

sudo chown-R mongodb:mongodb / data / db

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

sudo chown $USER / data / db

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

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

  1. узнайте у netstat, какой процесс работает mongodb port (27017)

    sudo netstat -tulpn | grep :27017

    выход будет: tcp 0 0 0.0.0.0:27017 0.0.0.0: * слушайте 1412 / mongod

  2. убить соответствующий процесс.

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

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

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

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

Я побежал

killall mongod

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

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

В Mycase
В mongodb версии 2.6.11 каталог базы данных по умолчанию -/var/lib/mongodb/

  1. $ sudo chown-R id -u /var / lib / mongodb/

  2. $ sudo chown-R id -u /var/lib/mongodb / mongod.замок

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

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

мой mongo (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 I CONTROL [initandlisten] dbexit: rc: 100

Итак, проблема была в разрешениях на папку /var/lib/mongodb.

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

исправлено, хотя я понимаю, что это может быть не слишком безопасно (это мой собственный dev box я в моем случае), бит после изменения как БД, так и проверка подлинности работал.

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

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

в моем случае проблема была решена путем удаления log.

sudo rm /log/mongod.log

хотя сообщение об ошибке относится именно к замок file:

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

после того, как я убил 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

Это то, что я сделал для устранения проблемы:

$sudo mkdir-p / data / db

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

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

и затем, чтобы начать монго...

$mongod

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

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

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

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

setenforce 0

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

судо команду chown -R в команду mongod:команду mongod /данные/дБ

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

mkdir/data / db #в качестве пути хранения базы данных

nohup mongod --dbpath / data / db &

или типа:

mongod --dbpath / data / db

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

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

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

и я установил обычай db-path in /etc/mongod.conf.

исправления: sudo mongod

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

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

каждый раз, когда вы пытаетесь запустить mongod просто наберите

sudo mongod

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

 chmod +rwx data/

Comments

    Ничего не найдено.