MongoDB – Instalação no CentOS/RHEL
- Postado por Adriano Bonacin
- Categorias mongodb
- Data 11/01/2022
- Comentários 0 comentário
Instalação
Este artigo é um dá série que estou escrevendo sobre MongoDB desde a instalação até tópicos mais avançados de sua administração. Aqui você encontra o primeiro e a lista de artigos. Nosso artigo anterior mostra como criar seu ambiente. Vamos continuar com a instalação do MongoDB no CentOS/RHEL. Durante a instalação, você pode ir pensando: por que alguém usaria um DB para guardar documentos (JSON)?
A instalação no Linux é bastante simples quando usamos um gerenciador de pacotes, como o yum. Basta criar o .repo e pedir para instalar. Se quiser a documentação mais detalhada, você pode encontrar aqui.
O procedimento é bem simples, crie um arquivo /etc/yum.repos.d/mongodb-org-5.0.repo com o conteúdo abaixo:
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
Em seguida, para instalar todos os pacotes necessários:
[root@mymongo1 /]# yum install -y mongodb-org
CentOS Linux 8 - AppStream 627 kB/s | 8.4 MB 00:13
CentOS Linux 8 - BaseOS 1.6 MB/s | 4.6 MB 00:02
CentOS Linux 8 - Extras 11 kB/s | 10 kB 00:00
MongoDB Repository 31 kB/s | 16 kB 00:00
Dependencies resolved.
...
Arquivo de configuração
Com isso temos nosso MongoDB instalado e pronto para o uso. Mas, antes vamos dar uma olhadinha no arquivo de conf (vou omitir algumas partes).
[root@mymongo1 /]# cat /etc/mongod.conf
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
# engine:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
systemLog -> Esse parâmetro controla como geramos logs. Por default, os logs serão direcionados para um arquivo informado no “path”.
storage -> Aqui controlamos onde ficarão os dados. Normalmente montamos um disco exclusivamente para isso, separado do filesystem “/”, mas esse é um detalhe para nos preocupar quando formos colocar em produção.
processManagement -> Este está mais relacionado com a forma que o Linux gerencia o processo do mongodb. Com o fork, a gente joga isso para o segundo plano e nossa sessão não fica presa. E o pidFile, é um arquivo onde o Linux guarda o número do processo em execução.
net -> Por fim, nesta versão “simples” do arquivo de conf, temos o “net”. Ele gerencia a forma como expomos o serviço. “port” informa a porta que ouve (LISTEN) as conexões e o “bindIP” a interface de rede. O detalhe mais importante é que se usamos o default (127.0.0.1), o DB não estará acessessível de fora do container. Por isso, precisamos trocar por 0.0.0.0, que informa ao mongodb que queremos atender em todas as interfaces disponíveis.
A única alteração que precisamos fazer antes de iniciar o mongodb pela primeira vez: trocar o bindIp de 127.0.0.1 para 0.0.0.0.
Iniciando o mongodb
Uma vez feita a alteração no bindIp, estamos prontos para iniciar o nosso MongoDB pela primeira vez. Veja:
[root@mymongo1 /]# mongod -f /etc/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 175
child process started successfully, parent exiting
[root@mymongo1 /]#
Com isso, temos o mongodb rodando e pronto para o uso. Importante saber a diferença entre o mongod, mongo e mongosh.
mongod -> processo server, que gerencia o banco de dados, recebe as conexões e etc.
mongo -> processo client, mongo shell foi depreciado e substituído pelo mongosh. Ainda disponível na versão 5.
mongosh -> novo processo client, MongoDB shell é um cli command line para interagirmos com o MongoDB usando javascript.
Conectando no MongoDB
Usando o mongosh vamos conectar no nosso DB.
[root@mymongo1 /]# mongosh
Current Mongosh Log ID: 61d6fc1f1276ff2551d20ba5
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000
Using MongoDB: 5.0.5
Using Mongosh: 1.1.7
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
...
test>
Ele mostra que estamos conectados ao banco test (default). Podemos conectar automaticamente a outro DB informando o nome do db:
[root@mymongo1 /]# mongosh admin
Current Mongosh Log ID: 61d701f24b59ac8fba616414
Connecting to: mongodb://127.0.0.1:27017/admin?directConnection=true&serverSelectionTimeoutMS=2000
Using MongoDB: 5.0.5
Using Mongosh: 1.1.7
...
admin>
Para ver a lista de todas a opções disponíveis como DB e opções de autenticação (fará sentido mais a frente), informações de criptografia (TLS) e outras:
[root@mymongo1 /]# mongosh --help
$ mongosh [options] [db address] [file names (ending in .js or .mongodb)]
Options:
...
Finalizamos por aqui e no próximo artigo vamos explorar um pouco mais nosso MongoDB. Ver o que é um DB, uma collection e mais. Até lá.
Tag:mongodb