Como faço para o mongo usar uma unidade montada no ec2? Eu realmente não entendo. Anexei um volume no ec2 formatado a unidade como root e inicio como root e ainda como root não consigo acessar? Estou executando no ubuntu 12.04. Nenhum outro mongo está sendo executado
Vejo que o mongo criou um diretório 'db' em / data, ou seja, / 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
Abaixo está se eu reiniciar ao remover um arquivo de bloqueio ....
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
, também no diretório de dados.Respostas:
Eu estava tendo o mesmo problema em uma instância do Ubuntu ec2. Eu estava seguindo este artigo da amazon na página 7:
http://d36cz9buwru1tt.cloudfront.net/AWS_NoSQL_MongoDB.pdf
O caminho do Mongodb
/etc/mongodb.conf
foi definido como/var/lib/mongodb
(local de instalação principal e funcionando). Quando mudei para/data/db
(volume EBS), recebi 'errno: 13 Permissão negada'.sudo service mongodb stop
.ls -la
ver a qual grupo e proprietário o mongodb foi atribuído/var/lib/mongodb
(caminho existente) e mudei o/data/db
(novo caminho) comchown
echgrp
para combinar. (exemplosudo chown -R mongodb:mongodb /data/db
:)etc/mongodb.conf
para/data/db
e excluí os antigos arquivos mongo no/var/lib/mongodb
diretório.sudo service mongodb start
e esperei cerca de um minuto. Se você tentar se conectar ao 27017 imediatamente, não poderá./data/db
(volume EBS) e o mongo deve ter colocado um diário, mongod.lock, local.ns, local.0, etc. Se não, tentesudo service mongodb restart
verificar um minuto depois.Passei mais de uma hora com isso. Alterar o grupo e excluir os arquivos antigos provavelmente não é necessário, mas foi o que funcionou para mim.
Este é um ótimo vídeo sobre como montar um volume ebs na instância ec2:
http://www.youtube.com/watch?v=gBII3o3BofU
fonte
Eu uso esse método para resolver o problema:
fonte
-R
opção e é perfeito :)id -u
/ data / db para os não iniciados. :)sudo chown $USER /data/db
vez do comando original.id -U
ou$USER
coisas. O mongo tem seu próprio usuário / grupo. você pode e deve codificar mongodb: mongodb. então o comando é simplesmentesudo chown -R mognodb:mognodb /data/db
No meu caso (instância do AWS EC2, Ubuntu) ajudou:
E depois disso tudo funcionou bem.
fonte
/data/db
paraUSERNAME
Você só precisa dar acesso à sua
/data/db
pasta.Digite
sudo chown -R <USERNAME> /data/db
, substitua<USERNAME>
pelo seu nome de usuário.Você pode encontrar seu nome de usuário digitando
whoami
.fonte
Instalei o mongodb com o EBS em um EC2 com o Ubuntu 14.04, seguindo este tutorial:
http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/
Mas em vez do chown sugerido, fiz:
Para consertar o problema
fonte
Eu tive um problema semelhante, o motivo real era que já havia uma sessão mongod em execução na minha tentativa anterior.
Eu corri
e tudo correu exatamente como esperado.
killall
O comando enviaria um sinal TERM a todos os processos com um UID real. Portanto, isso mata todas as instâncias em execução do mongod para que você possa começar o seu próprio.fonte
A partir de hoje, tentei fazer o caminho para criar / abrir o arquivo de bloqueio: /data/db/mongod.lock errno: 13 Permissão negada Uma instância do mongod já está em execução?, Finalizando e tentei todas as respostas postadas acima para resolver esse problema, portanto, nada funcionou adicionando
A menos que eu tenha adicionado minha permissão de usuário atual ao caminho do local
Espero que isso ajude alguém. Também instalei o Mongo DB no meu pi. Felicidades!
fonte
Eu tive um problema semelhante e segui todas as instruções acima em relação à alteração de proprietários usando o sudo chown etc. Ainda havia uma instância do mongodb em execução em segundo plano após as alterações. Corrida
me mostrou outras tarefas usando o mongo em execução em segundo plano que não foram fechadas corretamente. Eu executei kill em todos os que estavam rodando e então pude iniciar meu servidor.
fonte
Para usuários de mac:
Execute ls -ld / data / db /
Output e algo como drwrx-xr-x 20 singh wheel 680 21 jul 05:49 / data / db /
Onde singh é o proprietário e wheel é o grupo ao qual pertence .
Run sudo chown -R singh: roda / dados / db
Run mongod
fonte
A remoção do arquivo mongodb.lock não foi o problema no meu caso. Fiz isso e recebi um erro sobre a porta estar em uso: [initandlisten] listen (): bind () falhou errno: 98 Endereço já em uso no soquete: 0.0.0.0:27017. Encontrei outra solução aqui: incapaz de iniciar o servidor local mongodb com instruções para interromper o processo:
Descubra no netstat qual processo está executando a porta mongodb (27017)
sudo netstat -tulpn | grep :27017
A saída será: tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1412 / mongod
Mate o processo apropriado.
sudo kill 1412
(substitua 1412 pelo seu ID do processo encontrado na etapa 1)E consegui iniciar o mongodb com sucesso novamente. Acredito que o meu ainda estava fugindo de um desligamento inadequado.
fonte
Para aqueles que enfrentam esse erro no Windows usando o Gerenciador de tarefas, encerre a instância do "mongod.exe" que está sendo executada. Feito isso, exclua permanentemente o arquivo mongo.lock e execute o mongod.exe. Deve funcionar perfeitamente depois disso.
fonte
Meu mongo (3.2.9) foi instalado no Ubuntu e meu arquivo de log tinha as seguintes linhas:
2016-09-28T11: 32: 07.822 + 0100 I CONTROL [inicandlisten] dbexit: rc: 100
Portanto, o problema estava nas permissões na pasta / var / lib / mongodb.
Corrigido, embora eu perceba que pode não ser muito seguro (é minha própria caixa de desenvolvimento, no meu caso), pouco após a alteração db e autenticação funcionadas.
fonte
No Mycase
No mongodb versão 2.6.11, o diretório de banco de dados padrão é
/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
fonte
Eu tive o mesmo problema quando executei o comando mongod após instalá-lo no Windows10. Parei o serviço mongodb e o iniciei novamente. Trabalhando como um encanto
Comando para parar o serviço mongodb (no Windows):
net stop mongodb
Comando para iniciar o servidor mongodb:
mongod --dbpath PATH_TO_DATA_FOLDER
fonte
Em uma instância do Fedora 18 com Mongo 2.2.4, consegui solucionar um erro semelhante desativando o SELinux chamando
setenforce 0
como root.BTW, este era um ambiente corporativo, não uma instância do Amazon EC2, mas os sintomas eram semelhantes.
fonte
No meu caso, o problema foi resolvido removendo o arquivo de log .
Embora a mensagem de erro se refira especificamente ao arquivo de bloqueio :
fonte
Depois de matar o mongod, tive o mesmo problema: não foi possível iniciar o 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
Depois de excluir o bloqueio diretamente, posso reiniciar o processo mongod.
fonte
Isto é o que eu fiz para corrigir o problema:
$ sudo mkdir -p / data / db
$ export PATH = / usr / local / Adega / mongodb / 3.0.7 / bin: $ PATH
$ sudo chown -R
id -u
/ data / dbe então começar o mongo ...
$ mongod
fonte
Eu tive o mesmo problema.
Eu o resolvi alterando o status do selinux para permissivo com o comando abaixo:
fonte
Faça
ls -la
para conhecer o usuário e o grupo de / var / log / mongodb. Então nãosudo chown -R user:group /data/db
agora executarsudo service mongodb start
. Verifique o status comsudo service mongodb status
fonte
No Windows, verifique se o console foi iniciado como administrador
fonte
Você pode tentar por essas maneiras. 1º.
mas, algumas vezes, isso não é útil. 2nd. se a maneira acima não for útil, você pode tentar fazer isso:
ou digite:
para obter o fluxo de saída
fonte
Para mim no CentOS 6.x:
sudo chown -R mongodb:mongodb <db-path> sudo service mongod restart
E constituí um costume
db-path
no/etc/mongod.conf
.fonte
Se você quiser literalmente uma linha equivalente aos comandos da sua pergunta original, você pode usar o alias:
https://stackoverflow.com/a/11777141/7160782
fonte
No servidor Centos
isso funciona para mim
fonte
Ocorreu um erro semelhante, corrigido com a remoção de todos os registros (no meu diretório de casos
journals
e arquivomongo.lock...
), depois verifique a porta comsudo lsof -i:27017
, se smth estiver sendo executadakill <PID of the process>
, e tente executar./mongod
novamentefonte
Consertar:
sudo mongod
Eu tive o mesmo problema, executando mongod com privilégios sudo corrigido. Vindo de um ambiente Windows, usei apenas
mongod
para iniciar o daemon, parece que precisamos dos privilégios de superusuário para acessar / data / db.Você também pode conceder aos usuários não raiz permissões de leitura e gravação para esse caminho. verifique as respostas acima para obter um guia!
fonte
Toda vez que você tenta iniciar o mongod, basta digitar
ou se quiser consertar isso permanentemente, tente conceder rwx à pasta / data / db
fonte