Mongo Db erro inicial (toda vez)

0

Não consigo iniciar o mongo db. Dá o mesmo erro toda vez.

2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] MongoDB starting : pid=80283 port=27017 dbpath=/data/db 64-bit host=ubuntu
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] db version v3.4.6
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] git version: c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] allocator: tcmalloc
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] modules: none
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] build environment:
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten]     distmod: ubuntu1604
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten]     distarch: x86_64
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten]     target_arch: x86_64
2017-07-19T07:39:16.964-0700 I CONTROL  [initandlisten] options: {}
2017-07-19T07:39:16.964-0700 I STORAGE  [initandlisten] exception in initAndListen: 98 Unable to lock file: /data/db/mongod.lock Resource temporarily unavailable. Is a mongod instance already running?, terminating
2017-07-19T07:39:16.964-0700 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-07-19T07:39:16.964-0700 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-07-19T07:39:16.965-0700 I CONTROL  [initandlisten] now exiting
2017-07-19T07:39:16.965-0700 I CONTROL  [initandlisten] shutting down with code:100

Ou, às vezes, porta em erro de uso.

fogserver@iotlab-FogServer:~$ mongod
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] MongoDB starting : pid=21462 port=27017 dbpath=/data/db 64-bit host=iotlab-FogServer
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] db version v3.4.6
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] git version: c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] allocator: tcmalloc
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] modules: none
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] build environment:
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten]     distmod: ubuntu1604
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten]     distarch: x86_64
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten]     target_arch: x86_64
2017-07-19T17:24:01.299+0200 I CONTROL  [initandlisten] options: {}
2017-07-19T17:24:01.317+0200 E NETWORK  [initandlisten] listen(): bind() failed Address already in use for socket: 0.0.0.0:27017
2017-07-19T17:24:01.317+0200 E NETWORK  [initandlisten]   addr already in use
2017-07-19T17:24:01.317+0200 E NETWORK  [initandlisten] Failed to set up sockets during startup.
2017-07-19T17:24:01.317+0200 E STORAGE  [initandlisten] Failed to set up listener: InternalError: Failed to set up sockets
2017-07-19T17:24:01.317+0200 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-07-19T17:24:01.317+0200 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-07-19T17:24:01.317+0200 I CONTROL  [initandlisten] now exiting
2017-07-19T17:24:01.317+0200 I CONTROL  [initandlisten] shutting down with code:48
fogserver@iotlab-FogServer:~$

Então eu tenho que reiniciar o serviço toda vez. Por favor, sugira como isso pode ser evitado.

    
por Divya Nair 19.07.2017 / 16:43

1 resposta

0

Isso está acontecendo porque um servidor MongoDB já está em execução em seu sistema, provavelmente como um serviço daemonized.

De acordo com suas tags, você está executando o Ubuntu 16.04, que usa systemd . Você pode verificar o estado de execução do serviço usando este comando:

sudo systemctl status mongodb

Se isso for relatado como em execução, você já tem um servidor MongoDB em execução - tente se conectar a ele normalmente sem iniciar manualmente mongod .

Se você não quer / precisa de um serviço daemonized para iniciar na inicialização do sistema, você pode desativar o MongoDB rodando com isto:

sudo systemctl disable mongodb
sudo systemctl stop mongodb

Agora, você pode iniciar e parar manualmente o MongoDB usando mongod ou iniciando / parando o daemon:

sudo systemctl start mongodb

Eu pessoalmente altamente recomendo que você continue a usar o serviço daemonized, já que você não precisa se preocupar com a falha ou similar. Se a segurança é uma preocupação, bloqueie as portas do MongoDB no seu firewall.

Se você precisar de entradas de log para um serviço daemonized em execução, poderá usar o comando journalctl , da seguinte forma:

sudo journalctl -u mongodb

Se você quiser um diário ativo, adicione o sinalizador de linha de comando -f ao comando journalctl .

Se, por algum motivo, você precisar de ambos um MongoDB daemonized e um MongoDB de ativação por demanda, será necessário alterar o diretório de informações e dados de ligação para uma das duas instâncias. Veja aqui para parte do quebra-cabeça.

Alternativamente, você pode simplesmente parar o serviço enquanto executa o daemon diretamente.

    
por Kaz Wolfe 19.07.2017 / 18:19