Как заставить Монго использовать установленный диск на ec2? Я действительно не понимаю. Я подключил том на ec2, отформатировал диск как root и запустил как root, и все же как root, я не могу получить доступ? Я работаю на Ubuntu 12.04. Ни один другой монго не работает
Я вижу, что Монго сделал директорию 'db' в / 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
chown mongodb:mongodb on /var/lib/monogdb
, в том числе и к каталогу данных.Ответы:
У меня была такая же проблема на экземпляре Ubuntu ec2. Я следил за этой статьей амазонки на странице 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
и удалять старые Монго файлов в/var/lib/mongodb
каталоге.sudo service mongodb start
и подождал около минуты. Если вы попытаетесь подключиться к 27017 сразу, вы не сможете./data/db
(том EBS) и mongo должны были поместить журнал, mongod.lock, local.ns, local.0 и т. Д. Если нет, попробуйтеsudo service mongodb restart
проверить через минуту.Я просто провел больше часа с этим. Изменение группы и удаление старых файлов, вероятно, не является необходимым, но это то, что мне помогло.
Это отличное видео о подключении тома ebs к экземпляру ec2:
http://www.youtube.com/watch?v=gBII3o3BofU
источник
Я использую этот метод для решения проблемы:
источник
-R
вариант, и это идеально :)id -u
/ data / db для непосвященных. :)sudo chown $USER /data/db
вместо оригинальной команды.id -U
или$USER
вещи. Монго имеет свой собственный пользователь / группу. Вы можете и должны жесткий код mongodb: mongodb. так что команда простоsudo chown -R mognodb:mognodb /data/db
В моем случае (экземпляр AWS EC2, Ubuntu) помогло:
И после этого все работало нормально.
источник
/data/db
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/
Но вместо предложенного чоуна я сделал:
Решить проблему
источник
У меня была похожая проблема, настоящая причина была в том, что с моей предыдущей попытки уже был запущен сеанс mongod.
Я побежал
и все остальное бежало так, как ожидалось.
killall
Команда отправит сигнал TERM всем процессам с реальным UID. Так что это убивает все запущенные экземпляры mongod, чтобы вы могли начать свой собственный.источник
На сегодняшний день я попытался проложить путь для создания / открытия файла блокировки: /data/db/mongod.lock errno: 13 Отказано в разрешении Экземпляр mongod уже запущен ?, завершил работу и попробовал все ответы, опубликованные выше, чтобы решить эту проблему, следовательно, ничего не получилось, добавив
Если я не добавил свое текущее разрешение пользователя в путь к
Надеюсь, это кому-нибудь поможет. Также я только что установил Mongo DB на свой пи. Ура!
источник
У меня была похожая проблема, и я следовал всем приведенным выше инструкциям относительно смены владельцев с помощью sudo chown и т. Д. У меня все еще был экземпляр mongodb, работающий в фоновом режиме после изменений. Бег
показал мне другие задачи, использующие монго в фоновом режиме, которые не были закрыты должным образом. Затем я запустил kill на всех запущенных, а затем смог запустить мой сервер.
источник
Для пользователей Mac:
Запустите ls -ld / data / db /
Output должно быть что-то вроде drwrx-xr-x 20 singh wheel 680 21 Jul 05:49 / data / db /
Где singh - владелец, а wheel - группа, к которой он принадлежит ,
Запустите sudo chown -R singh: wheel / data / db
Запустите mongod
источник
Удаление файла mongodb.lock не было проблемой в моем случае. Я сделал это и получил ошибку об используемом порту: [initandlisten] listen (): bind () fail 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 снова. Я считаю, что мой все еще работал из-за неправильного выключения
источник
Для тех из вас, кто сталкивается с этой ошибкой в Windows с помощью диспетчера задач, завершите экземпляр «mongod.exe», который работает. После этого окончательно удалите файл mongo.lock и запустите mongod.exe. Это должно работать отлично после этого.
источник
Мой Монго (3.2.9) был установлен в Ubuntu, и мой файл журнала имел следующие строки:
2016-09-28T11: 32: 07.822 + 0100 I CONTROL [initandlisten] dbexit: rc: 100
Так что проблема была в разрешениях на папку / var / lib / mongodb.
Исправлено, хотя я понимаю, что это может быть не слишком безопасно (это мой собственный dev-бокс, я в моем случае), но после изменения работали и БД, и аутентификация.
источник
В Mycase
В mongodb версии 2.6.11 каталог базы данных по умолчанию:
/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
источник
У меня возникла такая же проблема, когда я запустил команду mongod после ее установки на Windows10. Я остановил службу mongodb и начал ее снова. Работая как шарм
Команда для остановки службы mongodb (в окнах):
net stop mongodb
Команда для запуска сервера mongodb:
mongod --dbpath PATH_TO_DATA_FOLDER
источник
На Fedora 18 с экземпляром Mongo 2.2.4 я смог обойти аналогичную ошибку, отключив SELinux, вызвав пользователя
setenforce 0
root.Кстати, это была корпоративная среда, а не экземпляр Amazon EC2, но симптомы были схожими.
источник
В моем случае проблема была решена путем удаления файла журнала .
Хотя сообщение об ошибке относится именно к файлу блокировки :
источник
После того, как я убил mongod, у меня просто была та же самая проблема: не мог начать 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.
источник
Вот что я сделал, чтобы решить проблему:
$ sudo mkdir -p / data / db
$ export PATH = / usr / local / Cellar / mongodb / 3.0.7 / bin: $ PATH
$ sudo chown -R
id -u
/ data / dbа потом начать монго ...
$ mongod
источник
У меня такая же проблема.
Я решил это, изменив статус selinux на разрешающий с помощью следующей команды:
источник
Ли
ls -la
знать пользователя и группу / вар / журнал / MongoDB. Тогдаsudo chown -R user:group /data/db
теперь бегиsudo service mongodb start
. Проверьте статус сsudo service mongodb status
источник
В Windows убедитесь, что консоль запущена как администратор
источник
Вы можете попробовать этими способами. Первый.
но иногда это бесполезно. Второй. Если вышеуказанный способ бесполезен, вы можете попробовать сделать это:
или введите:
получить выходной поток
источник
Для меня на CentOS 6.x:
sudo chown -R mongodb:mongodb <db-path> sudo service mongod restart
И я установил обычай
db-path
в/etc/mongod.conf
.источник
Если вам буквально нужна строка, эквивалентная командам в исходном вопросе, вы можете использовать псевдоним:
https://stackoverflow.com/a/11777141/7160782
источник
В Centos Server
это работает для меня
источник
Получил аналогичную ошибку, исправленную с удалением всех записей (в моем случае каталога
journals
и файлаmongo.lock...
), после этого проверьте порт с помощьюsudo lsof -i:27017
, если на нем что-то запущеноkill <PID of the process>
, и попробуйте запустить./mongod
сноваисточник
Fix:
sudo mongod
У меня была такая же проблема, запуск mongod с привилегиями sudo исправил ее. Исходя из среды Windows, я использовал только
mongod
для запуска демона, похоже, нам нужны привилегии суперпользователя для доступа к / data / db.Вы также можете дать пользователям без полномочий root чтение и запись для этого пути. проверьте ответы выше для руководства!
источник
Каждый раз, когда вы пытаетесь запустить Mongod, просто введите
или если постоянно хотите это исправить, просто попробуйте дать rwx право доступа к папке / data / db
источник