Fazendo esse trem funcionar (MongoDB 4.0.5).
Esse gist é simplesmente para que eu(ou qualquer outro) não esqueça de como fazer esse trem funcionar.
Se você possui alguma versão mais antigas e pretende remover, siga os comandos abaixo:
Obs: Após realizar esses comandos você perderá todos os bancos de dados que tiver previamente criado.
Para desinstalar todos os pacotes do MongoDB:
sudo apt-get purge mongodb-org*
Para remover outros dados e logs do MongoDB:
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
Antes de instalar a versão 4.0.5
ou qualquer outra que deseje, remova os arquivos referentes a versões anteriores, digite:
cd /etc/apt/sources.list.d/
Agora liste os arquivos existentes com o comando ls
:
Procure os arquivos do MongoDB, como exemplo os arquivos das versões 3.0 e 3.2, mongodb-org-3.0.list
, mongodb-org-3.0.list.save
, mongodb-org-3.2.list
, mongodb-org-3.2.list.save
, exclua esses arquivos antes de seguir o passo a passo para instalação da versão 4.0.5:
Importe a chave pública usada pelo sistema de gerenciamento de pacotes:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Cria um arquivo de lista para sua versão do sistema:
Ubuntu 16.4
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Ubuntu 18.4
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Atualize sua lista local de pacotes:
sudo apt-get update
Para instalar a última versão disponível:
sudo apt-get install -y mongodb-org
para instalar uma versão específica, a 4.0.5:
sudo apt-get install -y mongodb-org=4.0.5 mongodb-org-server=4.0.5 mongodb-org-shell=4.0.5 mongodb-org-mongos=4.0.5 mongodb-org-tools=4.0.5
Vamos criar um arquivo de unidade para gerenciar o serviço MongoDB. Crie um arquivo de configuração de nome mongodb.service
no diretório /etc/systemd/system
utilizando o nano
ou o seu editor de textos favorito.
sudo nano /etc/systemd/system/mongodb.service
O arquivo criado estará vazio, caso ele tenha sido automaticamente e já possua configuração não remova nada, apenas adicione a configuração abaixo se ela já não estiver no arquivo:
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
Feche e salve o arquivo.
O arquivo anterior tem uma estrutura simples:
A seção Unit contém uma visão geral (isto é, uma descrição legível para o serviço MongoDB) bem como dependências que devem ser satisfeitas antes do serviço ser iniciado. No nosso caso, o MongoDB depende da rede já estar disponível, por isso network.target
está aqui.
A seção Service informa como o serviço deve ser iniciado. A diretiva User
especifica que o servidor vai executar sob o usuário mongodb
, e a diretiva ExecStart
define o comando de inicialização para o servidor MongoDB.
A última seção, Install, diz ao systemd
quando o serviço deve ser automaticamente iniciado. O multi-user.target
é uma sequência padrão de inicialização de sistema, o que significa que o servidor será iniciado durante o boot.
Inicie o MongoDB:
sudo systemctl start mongodb
Verifique se está funcionando:
sudo systemctl status mongodb
O próximo passo é habilitar o MongoDB para iniciar quando o sistema inicializar.
sudo systemctl enable mongodb
Verifique novamente se está funcionando:
sudo systemctl status mongodb
Agora acesse seu MongoDB:
mongo --port 27017
O comando anterior está passando o parâmetro --port
com o valor 27017
porque esse é o número da porta padrão que o MongoDB utiliza, no entanto pode ser alterada de acordo com a vontade de quem está configurando.
O próximo passo é criar o usuário root. Então, selecione o banco de dados admin
use admin
E então, com o banco de dados setado basta criar o seu usuário:
db.createUser({user: "usuarioFulando", pwd: "senha4567", roles: [ "userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]})
Se tudo deu certo, seu usuário admin está criado e pronto para ser usado.
Acesse o Mongo já se autenticando com usuário root:
mongo admin -u usuarioFulando -p senha4567
Para habilitar o acesso externo é necessária a edição do arquivo mongod.conf
. Sendo assim:
sudo nano /etc/mongod.conf
Adicione esse configuração no arquivo:
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
Salve o arquivo e reinicie o serviço:
sudo systemctl restart mongodb
caso necessário, use o comando para recarregar o arquivo daemon:
sudo systemctl daemon-reload
Se vocẽ estiver buscando mais segurança, siga os passos abaixo.
A autenticação no MongoDB não vem habilitada por padrão. Caso deseje habilitar acesse o arquivo de configuração.
sudo nano /etc/mongod.conf
Insira a seguinte configuração:
security:
authorization: enabled
Caso ela já exista, apenas troque o disabled
por enabled
.
Caso deseje que suas aplicações acessem o banco sem autenticação é necessário deixar a opção disabled
setada.
Salve o arquivo e reinicie o serviço:
sudo systemctl restart mongodb
caso necessário, use o comando para recarregar o arquivo daemon:
sudo systemctl daemon-reload
- Install on Ubuntu | Documentação Oficial do MongoDB
- Como Instalar o MongoDB no Ubuntu 16.04
- Habilitando Autenticação no MongoDB —Usuário Root
- How to Enable Authentication on MongoDB
- Enabling authentication in mongodb
- Manage Users and Roles
- Enable Auth
sudo service mongodb stop && sudo rm /var/lib/mongodb/mongod.lock && sudo mongod --repair --dbpath /var/lib/mongodb && sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb && sudo service mongodb start
Caso vc esteja tentando instalar a versão 5.0.3 e esteja com algum problema no service do mongodb roda essa parada aqui:
e ai na sequência manda essa:
sudo apt install mongodb-org
e no mais é só continuar os passos da documentação https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/