Jak zmusić Mongo do korzystania z zamontowanego napędu w EC2? Naprawdę nie rozumiem. Podłączyłem wolumin do ec2 sformatowany dysk jako root i start jako root, a jednak jako root Nie mogę uzyskać dostępu? Korzystam z systemu Ubuntu 12.04. Żadne inne mongo nie działa
Widzę, że mongo utworzyło katalog „db” w katalogu / data tj. / 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
Poniżej znajduje się informacja o ponownym uruchomieniu po usunięciu pliku blokady ....
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
, również do katalogu danych.Odpowiedzi:
Miałem ten sam problem z instancją Ubuntu ec2. Śledziłem ten artykuł o Amazonce na stronie 7:
http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf
Ścieżka Mongodb w
/etc/mongodb.conf
została ustawiona na/var/lib/mongodb
(podstawowa lokalizacja instalacji i działa). Kiedy zmieniłem na/data/db
(wolumin EBS), otrzymywałem komunikat „errno: 13 Odmowa dostępu”.sudo service mongodb stop
.ls -la
do której grupy i właściciela mongodb przypisano/var/lib/mongodb
(istniejącą ścieżkę) i zmieniłem/data/db
(nową ścieżkę) za pomocąchown
i,chgrp
aby dopasować. (przykładsudo chown -R mongodb:mongodb /data/db
:)etc/mongodb.conf
do/data/db
i usunąłem stare pliki mongo w/var/lib/mongodb
katalogu.sudo service mongodb start
i czekałem około minuty. Jeśli spróbujesz natychmiast połączyć się z 27017, nie będziesz w stanie./data/db
(wolumin EBS) i mongo powinien był umieścić dziennik, mongod.lock, local.ns, local.0 itp. Jeśli nie, spróbujsudo service mongodb restart
jeszcze minutę później.Spędziłem z tym ponad godzinę. Zmiana grupy i usuwanie starych plików prawdopodobnie nie jest konieczne, ale to działało dla mnie.
To jest świetne wideo na temat montowania wolumenu ebs w instancji ec2:
http://www.youtube.com/watch?v=gBII3o3BofU
źródło
Używam tej metody do rozwiązania problemu:
źródło
-R
opcję i jest idealnie :)id -u
/ data / db dla niewtajemniczonych. :)sudo chown $USER /data/db
zamiast oryginalnej komendy.id -U
ani$USER
rzeczy. mongo ma własnego użytkownika / grupę. możesz i powinieneś twardy kod mongodb: mongodb. więc polecenie jest po prostusudo chown -R mognodb:mognodb /data/db
W moim przypadku (instancja AWS EC2, Ubuntu) pomogła:
A potem wszystko działało dobrze.
źródło
/data/db
naUSERNAME
Musisz tylko dać dostęp do swojego
/data/db
folderu.Wpisz
sudo chown -R <USERNAME> /data/db
, zastąp<USERNAME>
swoją nazwą użytkownika.Możesz znaleźć swoją nazwę użytkownika, pisząc
whoami
.źródło
Zainstalowałem mongodb z EBS na EC2 z Ubuntu 14.04, wykonując ten samouczek:
http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/
Ale zamiast sugerowanego chown zrobiłem:
Naprawić problem
źródło
Miałem podobny problem, faktyczny powód był taki, że sesja mongod działała już od mojej poprzedniej próby.
Pobiegłem
i wszystko inne działało zgodnie z oczekiwaniami.
killall
polecenie wysłałoby sygnał TERM do wszystkich procesów z prawdziwym UID. To zabija wszystkie uruchomione instancje mongod, abyś mógł założyć własne.źródło
Na dzień dzisiejszy, starałem się dostać moją drogę przez stworzenia pliku / otwartego zamka: /data/db/mongod.lock errno 13 Permission denied jest instancją mongod już działa ?, kończące i próbowała wszystko odpowiedź pisał wyżej rozwiązać ten problem, dlatego nic nie działało przez dodanie
Chyba że dodałem moje bieżące uprawnienia użytkownika do ścieżki lokalizacji przez
Mam nadzieję, że to komuś pomoże. Właśnie zainstalowałem Mongo DB na moim pi. Twoje zdrowie!
źródło
Miałem podobny problem i postępowałem zgodnie ze wszystkimi powyższymi instrukcjami dotyczącymi zmiany właścicieli za pomocą sudo chown itp. Po zmianach nadal miałem w tle mongodb działający w tle. Bieganie
pokazał mi inne zadania przy użyciu mongo działającego w tle, które nie zostały poprawnie zamknięte. Następnie uruchomiłem kill na wszystkich uruchomionych, a następnie mogłem uruchomić mój serwer.
źródło
Dla użytkowników komputerów Mac:
Uruchom ls -ld / data / db /
Output powinien być podobny do drwrx-xr-x 20 singh wheel 680 21 lipca 05:49 / data / db /
Gdzie singh jest właścicielem, a wheel jest grupą, do której należy .
Uruchom sudo chown -R singh: wheel / data / db
Uruchom mongod
źródło
Usunięcie pliku mongodb.lock nie było problemem w moim przypadku. Zrobiłem to i otrzymałem błąd związany z używanym portem: [initandlisten] listen (): bind () nie powiodło się errno: 98 Adres już używany dla gniazda: 0.0.0.0:27017. Znalazłem tutaj inne rozwiązanie: nie można uruchomić lokalnego serwera mongodb z instrukcjami, aby zakończyć proces:
Dowiedz się z netstat, w którym procesie jest uruchomiony port mongodb (27017)
sudo netstat -tulpn | grep :27017
Wyjście będzie: tcp 0 0 0,0,0,0:27017 0,0,0,0:* LISTEN 1412 / mongod
Zabij odpowiedni proces.
sudo kill 1412
(zastąp 1412 swoim identyfikatorem procesu znalezionym w kroku 1)I udało mi się ponownie uruchomić mongodb. Wydaje mi się, że mój wciąż uciekał przed niewłaściwym zamknięciem.
źródło
Dla tych z was, którzy doświadczają tego błędu w systemie Windows za pomocą Menedżera zadań, zakończ uruchomioną instancję „mongod.exe”. Gdy to zrobisz, trwale usuń plik mongo.lock i uruchom mongod.exe. Po tym powinno działać idealnie.
źródło
Mój mongo (3.2.9) został zainstalowany na Ubuntu, a mój plik dziennika zawierał następujące wiersze:
2016-09-28T11: 32: 07.822 + 0100 I CONTROL [lista początkowa] dbexit: rc: 100
Problem polegał więc na uprawnieniach do folderu / var / lib / mongodb.
Naprawiłem to, chociaż zdaję sobie sprawę, że może to nie być zbyt bezpieczne (w moim przypadku jest to własne okno deweloperów), nieco po zmianie zadziałało zarówno db, jak i uwierzytelnianie.
źródło
In Mycase
W mongodb wersja 2.6.11 domyślnym katalogiem bazy danych jest
/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
źródło
Ten sam problem wystąpił, gdy uruchomiłem polecenie mongod po zainstalowaniu go w systemie Windows10. Zatrzymałem usługę mongodb i uruchomiłem ją ponownie. Działa jak urok
Polecenie zatrzymania usługi mongodb (w systemie Windows):
net stop mongodb
Polecenie uruchomienia serwera mongodb:
mongod --dbpath PATH_TO_DATA_FOLDER
źródło
Na instancji Fedory 18 z Mongo 2.2.4 udało mi się obejść podobny błąd, wyłączając SELinux, wywołując
setenforce 0
jako root.BTW, to było środowisko korporacyjne, a nie instancja Amazon EC2, ale objawy były podobne.
źródło
W moim przypadku problem został rozwiązany przez usunięcie pliku dziennika .
Chociaż komunikat o błędzie odnosi się konkretnie do pliku blokady :
źródło
Po zabiciu Mongod miałem tylko ten sam problem: nie mogłem uruchomić 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
Po bezpośrednim usunięciu blokady mogę ponownie uruchomić proces mongod.
źródło
Oto, co zrobiłem, aby rozwiązać problem:
$ sudo mkdir -p / data / db
$ export PATH = / usr / local / Cellar / mongodb / 3.0.7 / bin: $ PATH
$ sudo chown -R
id -u
/ data / dba potem zacząć mongo ...
$ mongod
źródło
Miałem ten sam problem.
Rozwiązałem to, zmieniając status selinux na permissive za pomocą poniższego polecenia:
źródło
Czy
ls -la
znać użytkownika i grupę / var / log / mongodb. Następnie zróbsudo chown -R user:group /data/db
teraz Uruchomsudo service mongodb start
. Sprawdź status za pomocąsudo service mongodb status
źródło
W systemie Windows upewnij się, że konsola jest uruchomiona jako aministrator
źródło
Możesz spróbować tymi sposobami. 1. miejsce
ale w niektórych przypadkach nie jest to przydatne. 2. miejsce jeśli powyższy sposób nie jest przydatny, możesz spróbować to zrobić:
lub wpisz:
aby uzyskać strumień wyjściowy
źródło
Dla mnie na CentOS 6.x:
sudo chown -R mongodb:mongodb <db-path> sudo service mongod restart
I mam ustawić niestandardowy
db-path
w/etc/mongod.conf
.źródło
Jeśli dosłownie chcesz jednego wiersza odpowiadającego poleceniom w swoim pierwotnym pytaniu, możesz użyć aliasu:
https://stackoverflow.com/a/11777141/7160782
źródło
W Centos Server
to działa dla mnie
źródło
Wystąpił podobny błąd, naprawiony przez usunięcie wszystkich rekordów (w moim katalogu sprawy
journals
i plikumongo.lock...
), po czym sprawdź port zsudo lsof -i:27017
, jeśli coś na nim działakill <PID of the process>
, i spróbuj uruchomić./mongod
ponownieźródło
Naprawić:
sudo mongod
Miałem ten sam problem, naprawiłem go uruchamiając mongod z uprawnieniami sudo. Ze środowiska Windows korzystałem właśnie
mongod
do uruchomienia demona, wygląda na to, że potrzebujemy uprawnień administratora do dostępu / danych / db.Możesz także przyznać użytkownikom innym niż root uprawnienia do odczytu i zapisu do tej ścieżki. sprawdź odpowiedzi powyżej, aby uzyskać przewodnik!
źródło
Za każdym razem, gdy próbujesz uruchomić mongod, po prostu wpisz
lub jeśli na stałe chcesz to naprawić, po prostu daj pierwszeństwo rwx w folderze / data / db
źródło