Como você instalou? Você usou uma aptidão? Você baixou o tarbal diretamente?
Bryan Migliorisi,
1
Eu tive esse erro e foi porque no ubuntu eu não executei mongodprimeiro
Connor Leech
Respostas:
124
Remova manualmente o lockfile: sudo rm /var/lib/mongodb/mongod.lock
Execute o script de reparo: sudo -u mongodb mongod -f /etc/mongodb.conf --repair
Por favor observe o seguinte:
Você deve executar este comando como o usuário mongodb. Se você executá-lo como root, o root terá os arquivos em / var / lib / mongodb / que são necessários para executar o daemon mongodb e, portanto, quando o daemon tentar ser executado posteriormente como o usuário mongodb, não terá permissão para iniciar . Nesse caso, você obterá este erro: Incapaz de criar / abrir arquivo de bloqueio para lockfilepath: /var/lib/mongodb/mongod.lock errno: 13 Permissão negada, encerrando.
No Ubuntu, você deve especificar o arquivo de configuração /etc/mongodb.conf usando o sinalizador -f. Caso contrário, ele procurará os arquivos de dados no local errado e você verá o seguinte erro: dbpath (/ data / db /) does not exist, finaling.
Basta adicionar-se ao grupo mongodb: useradd -G mongodb fady substitua fady pelo seu nome de usuário.
fady mohamed osman
2
Tive que usar as informações desta resposta e da resposta de @boulder_ruby. Isso porque meu '/ data / db /' estava faltando. Talvez seja uma boa atualização para que esta resposta seja mais completa.
Se eu tentar `sudo -u mongodb mongod -f /etc/mongodb.conf --repair` aqui está o que eu obtenho:Mon Aug 22 11:28:17.919 Can't specify both --journal and --repair options.
Aleksandrus
21
Tentando executar $ mongod
Se você receber um erro como
MongoDB shell version:2.0.5
connecting to: test
FriJun111:20:33Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed
hisham-agil:~ hisham$ mongod
mongod --help for help and startup options
FriJun111:24:47[initandlisten]MongoDB starting : pid=53452 port=27017 dbpath=/data/db/64-bit host=hisham-agil.local
FriJun111:24:47[initandlisten] db version v2.0.5, pdfile version 4.5FriJun111:24:47[initandlisten] git version: nogitversion
FriJun111:24:47[initandlisten] build info:Darwin gamma.local 11.3.0DarwinKernelVersion11.3.0:ThuJan1218:48:32 PST 2012; root:xnu-1699.24.23~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49FriJun111:24:47[initandlisten] options:{}FriJun111:24:47[initandlisten] exception in initAndListen:10296 dbpath (/data/db/) does not exist, terminating
FriJun111:24:47 dbexit:FriJun111:24:47[initandlisten] shutdown: going to close listening sockets...FriJun111:24:47[initandlisten] shutdown: going to flush diaglog...FriJun111:24:47[initandlisten] shutdown: going to close sockets...FriJun111:24:47[initandlisten] shutdown: waiting for fs preallocator...FriJun111:24:47[initandlisten] shutdown: lock for final commit...FriJun111:24:47[initandlisten] shutdown: final commit...FriJun111:24:47[initandlisten] shutdown: closing all files...FriJun111:24:47[initandlisten] closeAllFiles() finished
FriJun111:24:47 dbexit: really exiting now
Então você se deparou com um erro básico de inicialização que é bastante comum.
Por padrão, o mongod tentará usar / data / db para seus arquivos de banco de dados, que neste caso, não existe.
Você não pode começar
mongo
até você lidar
mongod.
Tente criar esses diretórios e verifique se eles podem ser gravados pelo mesmo usuário que está executando o processo mongod.
você também pode definir o dbpath assim: mongod --dbpath ../data
cbaigorri
20
Na verdade, isso não é um erro ... O que acontece aqui é que o Mongo depende de um daemon para executar o servidor de banco de dados local, então, para " iniciar " o servidor mongo em seu shell, você deve iniciar o serviço mongo primeiro.
Para Fedora Linux (que é a Distro que uso), você deve executar estes comandos:
1 sudo service mongod start
2 mongo
E aí está! o servidor vai rodar. Agora, se você deseja que o serviço Mongo inicie quando o sistema inicializar, você deve executar:
sudo chkconfig --levels 235 mongod on
E isso é tudo! Se você fizer isso, agora no shell você só precisa digitar mongo para iniciar o servidor, mas é basicamente isso, o problema é que você tem que iniciar o SERVIÇO primeiro e depois o SERVIDOR :)
PS Os comandos que postei podem funcionar em outras distros Linux também, não apenas no fedora ... Caso não, talvez você tenha que ajustar algumas palavras dependendo da distro que estiver usando;)
O OP está no Ubuntu, então tenho certeza de que eles não usarão nenhum .exearquivo.
me_e
Estou recebendo esta mensagem de erro e não consigo encontrar um "mongod.lock" em meu sistema de arquivos. Essas instruções se aplicam ao Mac OSX?
boulder_ruby
5
Ou seu mongod não está rodando (verifique usando o comando "ps") ou ele está escutando em algum endereço IP externo e não em localhost. Portanto, primeiro verifique a lista de processos se 'mongod' está em execução. Se sim, verifique com "netstat -nap" para a porta relacionada.
Claro que você pode iniciar o mongod no console manualmente ou até mesmo olhar para o arquivo de log do mongod (se houver um configurado ... dependendo de como você instalou o mongod).
Primeiro você tem que se certificar de que todos os arquivos e diretórios em sua pasta / var / lib / mongodb / (ou qualquer pasta que dbpath aponte) pertencem ao usuário mongodb e grupo mongodb.
Como é que não há votos positivos para isso? Esta foi a única solução, entre meia dúzia de entradas de SO que procurei, que funcionou para mim. Obrigado, senhor.
FRD
O comando para iniciar com o arquivo de configuração e forçar um reparo está sudo -u mongodb mongod -f /etc/mongod.conf --repairno Ubuntu 14.
okoboko
5
Primeiro inicie o seu servidor mongo por
Users-MacBook-Pro:csv1 Admin$ mongod
all output going to:/usr/local/var/log/mongodb/mongo.log
Em seguida, abra outra janela de terminal e abra o shell
Verifique também se a partição raiz tem espaço suficiente para iniciar o mongod.
df -h /
Você verá algo assim no lançamento do mongod:
MonAug1217:02:59.159[initandlisten] recover : no journal files present, no recovery needed
MonAug1217:02:59.159[initandlisten]MonAug1217:02:59.159[initandlisten] ERROR:Insufficient free space for journal files
MonAug1217:02:59.159[initandlisten]Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
MonAug1217:02:59.159[initandlisten]MonAug1217:02:59.159[initandlisten] exception in initAndListen:15926Insufficient free space for journals, terminating
MonAug1217:02:59.159 dbexit:MonAug1217:02:59.159[initandlisten] shutdown: going to close listening sockets...
Agora tente verificar a versão do Mongo, se você estiver seguindo, então você está no caminho certo!
$ mongo --version
MongoDB shell version:2.4.6
Agora precisamos criar o diretório do banco de dados. Eu usei o local padrão '/ data / db' sugerido nos documentos do MongoDB. Eu também criei um diretório de log para evitar quaisquer problemas de permissão enquanto o Mongo tenta criar qualquer log. Mude a propriedade e isso fará o trabalho.
Agora, criaremos um arquivo de configuração padrão para MongoDB a ser fornecido pela primeira vez que executarmos o comando 'mongod'. Agora, também gostaria de salientar que 'mongod' iniciará um serviço, que ouvirá as conexões de dados de entrada. Isso é semelhante a ter '$ service mysqld start' executado. Vamos em frente e criar o arquivo de configuração. Lembre-se de que criei um arquivo de configuração muito básico. No entanto, você pode adicionar muitas outras variáveis para configurar o MongoDB. Esta é a primeira vez que estou jogando com o MongoDB, então sei tanto quanto leio nos documentos do MongoDB! Criei 'mongodb.conf'.
Observe que a porta padrão para o servidor MongoDB é 27017. Use seu próprio caminho para dbpath e logpath que você criou na Etapa - 5. Não se esqueça de fechar e salvar o arquivo conf.
Agora estamos prontos para iniciar nosso serviço MongoDB. Abra duas instâncias do Terminal. No Terminal 1, digite:
$ sudo mongod -f /etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process:3516
all output going to:/data/log/mongod.log
child process started successfully, parent exiting
Se você receber a mensagem acima, saiba que iniciou com êxito o serviço Mongod.
Agora, para se conectar a ele, no Terminal 2 digite o seguinte:
$mongo test
MongoDB shell version:2.4.6
connecting to: test
Server has startup warnings:TueSep316:55:43.527[initandlisten]TueSep316:55:43.527[initandlisten]** WARNING: soft rlimits too low.Numberof files is 256, should be at least 1000>
Ignore os avisos, mas você está conectado com sucesso ao banco de dados de 'teste'! Legal!
Isso é tudo. Eu apliquei essa solução quando tentei instalar uma cópia do MongoDB no meu Mac pela primeira vez. Veja se isso ajuda você também.
Embora este link possa responder à pergunta, é melhor incluir as partes essenciais da resposta aqui e fornecer o link para referência. As respostas somente com link podem se tornar inválidas se a página vinculada mudar.
Radim Köhler
@ RadimKöhler, obrigado pelo aviso. Eu corrigi a resposta. Espero que isso ajude alguém. Felicidades.
Chinmay
1
Resolvi este problema no ubuntu 12.04 seguindo os seguintes passos:
1) sudo rm / var / log / mongodb
2) sudo rm / var / lib / mongodb
3) Removi o mongo e instalei novamente
4) sudo service mongodb restart
mongod
primeiroRespostas:
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
Por favor observe o seguinte:
fonte
Aqui está tudo, às vezes, demora um pouco para iniciar o mongo após realizar essas operações.
fonte
Mon Aug 22 11:28:17.919 Can't specify both --journal and --repair options.
Tentando executar $ mongod
Se você receber um erro como
Então você se deparou com um erro básico de inicialização que é bastante comum.
Por padrão, o mongod tentará usar / data / db para seus arquivos de banco de dados, que neste caso, não existe.
Você não pode começar
até você lidar
Tente criar esses diretórios e verifique se eles podem ser gravados pelo mesmo usuário que está executando o processo mongod.
** Veja pergunta semelhante - Obtendo um erro, "Erro: não foi possível conectar ao servidor 127.0.0.1 shell / mongo.js" e ao tentar executar o mongodb no mac osx lion
fonte
Na verdade, isso não é um erro ... O que acontece aqui é que o Mongo depende de um daemon para executar o servidor de banco de dados local, então, para " iniciar " o servidor mongo em seu shell, você deve iniciar o serviço mongo primeiro.
Para Fedora Linux (que é a Distro que uso), você deve executar estes comandos:
E aí está! o servidor vai rodar. Agora, se você deseja que o serviço Mongo inicie quando o sistema inicializar, você deve executar:
E isso é tudo! Se você fizer isso, agora no shell você só precisa digitar mongo para iniciar o servidor, mas é basicamente isso, o problema é que você tem que iniciar o SERVIÇO primeiro e depois o SERVIDOR :)
PS Os comandos que postei podem funcionar em outras distros Linux também, não apenas no fedora ... Caso não, talvez você tenha que ajustar algumas palavras dependendo da distro que estiver usando;)
fonte
sudo service mongodb start
Tive o mesmo problema quando tentei instalar o mongo. Recebi Erro como,
Erro
Solução:
Primeiro instale o mongod usando:
Então digite
Então
Então
Obrigado
fonte
Você precisa deletar o lockfile
mongod.lock
ou/var/lib/mongodb/mongod.lock
no ubuntu, então você precisa executarmongod.exe
ouservice mongodb start
no ubuntu primeiro, depois executarmongo.exe
oumongo
no ubuntu.fonte
.exe
arquivo.Ou seu mongod não está rodando (verifique usando o comando "ps") ou ele está escutando em algum endereço IP externo e não em localhost. Portanto, primeiro verifique a lista de processos se 'mongod' está em execução. Se sim, verifique com "netstat -nap" para a porta relacionada.
Claro que você pode iniciar o mongod no console manualmente ou até mesmo olhar para o arquivo de log do mongod (se houver um configurado ... dependendo de como você instalou o mongod).
fonte
Primeiro você tem que se certificar de que todos os arquivos e diretórios em sua pasta / var / lib / mongodb / (ou qualquer pasta que dbpath aponte) pertencem ao usuário mongodb e grupo mongodb.
(Substitua o nome do arquivo e diretório com seus respectivos nomes)
Depois, você pode remover o bloqueio, reparar o banco de dados e reiniciar o daemon como outras pessoas já mencionaram:
fonte
sudo -u mongodb mongod -f /etc/mongod.conf --repair
no Ubuntu 14.Primeiro inicie o seu servidor mongo por
Em seguida, abra outra janela de terminal e abra o shell
fonte
Verifique também se a partição raiz tem espaço suficiente para iniciar o mongod.
Você verá algo assim no lançamento do mongod:
fonte
No Ubuntu, tente isto:
fonte
Pode ser uma combinação de $ PATH e problema de permissão.
Tente seguir as etapas fornecidas abaixo:
Atualize sua variável $ PATH para apontar para seu arquivo bin MongoDB. No meu caso, instale o MongoDB nesta pasta:
Para atualizar sua variável $ PATH, faça o seguinte:
Em seguida, pressione 'i' para inserir texto em Vi e anexe o caminho do MongoDB ao final do arquivo 'caminhos' e reinicie o terminal.
Use 'Esc: w q' para salvar e sair do editor Vi.
Use echo para exibir sua variável de caminho:
Agora tente verificar a versão do Mongo, se você estiver seguindo, então você está no caminho certo!
Agora precisamos criar o diretório do banco de dados. Eu usei o local padrão '/ data / db' sugerido nos documentos do MongoDB. Eu também criei um diretório de log para evitar quaisquer problemas de permissão enquanto o Mongo tenta criar qualquer log. Mude a propriedade e isso fará o trabalho.
Agora, criaremos um arquivo de configuração padrão para MongoDB a ser fornecido pela primeira vez que executarmos o comando 'mongod'. Agora, também gostaria de salientar que 'mongod' iniciará um serviço, que ouvirá as conexões de dados de entrada. Isso é semelhante a ter '$ service mysqld start' executado. Vamos em frente e criar o arquivo de configuração. Lembre-se de que criei um arquivo de configuração muito básico. No entanto, você pode adicionar muitas outras variáveis para configurar o MongoDB. Esta é a primeira vez que estou jogando com o MongoDB, então sei tanto quanto leio nos documentos do MongoDB! Criei 'mongodb.conf'.
Adicione o seguinte:
Observe que a porta padrão para o servidor MongoDB é 27017. Use seu próprio caminho para dbpath e logpath que você criou na Etapa - 5. Não se esqueça de fechar e salvar o arquivo conf.
Agora estamos prontos para iniciar nosso serviço MongoDB. Abra duas instâncias do Terminal. No Terminal 1, digite:
Se você receber a mensagem acima, saiba que iniciou com êxito o serviço Mongod.
Agora, para se conectar a ele, no Terminal 2 digite o seguinte:
Ignore os avisos, mas você está conectado com sucesso ao banco de dados de 'teste'! Legal!
Isso é tudo. Eu apliquei essa solução quando tentei instalar uma cópia do MongoDB no meu Mac pela primeira vez. Veja se isso ajuda você também.
Para postagens detalhadas, você pode ir aqui - http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094 .
Espero que ajude!
Saúde, Chinmay
fonte
Resolvi este problema no ubuntu 12.04 seguindo os seguintes passos:
1) sudo rm / var / log / mongodb
2) sudo rm / var / lib / mongodb
3) Removi o mongo e instalei novamente
4) sudo service mongodb restart
e tudo está bem
fonte