Guia de instalação do mongoDB

MongoDB é o banco de dados mais popular quando falamos sobre NOSQL! Ele pode não ser o melhor, o pior, o intermediário, vai do uso de cada, mas com certeza se você perguntar a qualquer pessoa da área de dados para citar 3 bancos NOSQL, a primeira resposta certamente será mongoDB! É indiscutível que o “verdinho” é o mais conhecidos dentre as opções do mercado, mesmo ele se tratando de uma vertente dentro do gigantesco mundo NOSQL, que é a vertente orientada a documentos. Alguns bem conhecidos são: Cassandra, CouchDB, ElasticSearch, Redis, Dynamo, Hbase, dentre outros.

Hoje vou mostrar a vocês como fazer a instalação do MongoDB, bem como a criação de um database/schema e um usuário para aplicação conectar!

Estou utilizando o sistema operacional CentOS 7 na versão minimal e os binários do mongoDB 4.2

Primeiro passo:

Crie um arquivo chamado /etc/yum.repos.d/mongodb-org-4.2.repo no sistema operacional e insira as informações do repositório:

[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

Segundo passo:

verifique se o repositório aparece na listagem:

yum repolist

Terceiro passo:

Instalar o pacote do mongo db

yum install -y mongodb-org

Verifique que para fazer a instalação, é preciso fazer um download de 119 MB! Aperte a tecla Y e em seguida aperte ENTER, conforme imagem abaixo:

Feito isso, o mongoDB estará instalado no seu servidor!

Antes de iniciar o serviço, precisamos ajustar o SELINUX, alterando sua configuração para permissive usando o comando setenforce:

Checar se o selinux está Permissive:

[root@mongodb ~]# getenforce

Resultado: Enforcing

Alterando o selinux para permissive

[root@mongodb ~]# setenforce 0

Checar se o selinux está Permissive:

[root@mongodb ~]# getenforce

Resultado: Permissive

O próximo passo é iniciar o serviço do MongoDB. Digite os 3 comandos abaixo para iniciar, verificar o status e configurar a inicialização automática do serviço:

systemctl start mongod
systemctl status mongod
systemctl enable mongod

Banco no ar! Agora vem a melhor parte, conectar e criar os schemas. Note que o serviço é chamado de mondod e a console é chamada de mongo!

Para logar no banco, digite o comando mongo e em seguida aperte enter:

Por default, algumas configurações são de fábrica e o próprio mongo faz o alerta sugerindo mudanças, porém isso é tópico para outro post que irei abordar as melhores práticas de configuração do mongoDB.

Dentro do console mongo, entre no schema admin e digite o comando db.adminCommand( { listDatabases: 1 } ) para listar os schemas existentes:

use admin;
switched to db admin

db.adminCommand( { listDatabases: 1 } )
{
"databases" : [
{
"name" : "admin",
"sizeOnDisk" : 135168,
"empty" : false
},
{
"name" : "config",
"sizeOnDisk" : 110592,
"empty" : false
},
{
"name" : "local",
"sizeOnDisk" : 40960,
"empty" : false
},
],
"totalSize" : 327680,
"ok" : 1
}

Por default são criados esses 3 schemas: admin, config e local! Vamos criar um schema chamado dbford e criar uma collection de carros:

use dbford;
db.carros.insert({idCarro: 1, nome: "Focus"});
db.carros.insert({idCarro: 2, nome: "Fusion"});
db.carros.insert({idCarro: 3, nome: "Ranger"});
db.carros.insert({idCarro: 4, nome: "Ka"});
db.carros.insert({idCarro: 5, nome: "EcoSport"});

Schema criado e registros devidamente inseridos. Para consultar as tabelas do mongodb, basta rodar o comando:

show collections

Para visualizar as linhas inseridas na sua collection, basta digitar o comando db.nomedacollection.find(), no nosso caso ficaria:

db.carros.find()

Ou se preferir em outro formato:

db.carros.find().pretty()

E por fim vamos aprender como criar usuários para conectar no banco! A sintaxe é simples e pode ser adaptada a seu critério, no script abaixo estou criando um usuário com privilégios avançados:

db.createUser({
user: "leonardo",
pwd: "R10DT9CAM",
roles: [
{ role: "root", db: "admin" }
]
})

Resultado do comando:

As roles possíveis são: read, readwrite, dbAdmin, clusterAdmin, clusterManager, clusterMonitor, backup, restore, readAnyDatabase, readWriteAnyDatabase, useradminAnyDatabase, dbadminAnyDatabase, dbOwner, userAdmin e root. A descrição completa de cada uma você verificar nesse link: https://docs.mongodb.com/manual/reference/built-in-roles/#database-user-roles !

Para logar com o usuário que acabamos de criar:

mongo -u leonardo -p R10DT9CAM --authenticationDatabase admin

Para listar os usuários existentes na base:

db.getUsers()

Para remover o usuário:

db.dropUser('leonardo')

E o backup? Como que fica? Simples!

mongodump
mongodump --host server01 --port 27017
mongodump --out /u01/backup/
mongodump --host server01 --port 27017 --username admin --password "S3nh@F0rt&" --out /u01/backup/mongodb-20200406

Esse foi o primeiro post relacionado a MongoDB, basicamente aprendemos a:

Instalar o MongoDB em uma distribuição Linux

Criar e listar os schemas
Criar e lister as collections
Inserir dados na collection
Listar os dados existentes na collection
Criar, listar e dropar usuários
Nos próximos posts pretendo aprofundar em temas como restore, desempenho e segurança!

Até mais.

Deixe uma resposta

Seu e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

×