Primeiros criamos o usuário mongo, que será o dono da instalação e administração do banco:
[root@serv01 Instalacao]# groupadd -g 1102 mongo [root@serv01 Instalacao]# adduser -g 1102 -u 1102 mongo [root@serv01 Instalacao]# passwd mongo Mudando senha para o usuário mongo. Nova senha: senha123 Redigite a nova senha: senha123 passwd: todos os tokens de autenticações foram atualizados com sucesso.
Agora criamos os diretórios: conf, data e logs para armazenar o arquivo de configuração, os dados e logs do mongoDB:
O 10000 que estamos criando é referente a porta que iremos utilizar para o banco de dados do MongoDB.
[root@serv01 ~]# mkdir -p /opt/mongodb/conf [root@serv01 ~]# mkdir -p /u00/mongodb/data/10000/repairdb [root@serv01 ~]# mkdir -p /u00/mongodb/logs/10000
Vamos mudar o dono dos diretórios para o usuário mongo que criamos:
[root@serv01 ~]# chown mongo:mongo /opt/mongodb -R [root@serv01 ~]# chown mongo:mongo /u00 -R [root@serv01 ~]# ls -ltr /opt/mongodb/ drwxr-xr-x. 2 mongo mongo 4096 Nov 17 18:05 conf [root@serv01 ~]# ls -ltr /u00/mongodb/ drwxr-xr-x. 3 mongo mongo 4096 Nov 17 18:05 data drwxr-xr-x. 3 mongo mongo 4096 Nov 17 18:05 logs [root@serv01 ~]# ls -ltr /u00/mongodb/data/ drwxr-xr-x. 3 mongo mongo 4096 Nov 17 18:05 10000
Certo, agora com o usuário mongo, repare que já temos os binário de instalação do MongoDB no diretório: /u00/Instalacao/:
Nós baixamos o arquivo compactado direto do site do mongodb.
[root@serv01 ~]# su - mongo [mongo@serv01 ~]$ cd /u00/Instalacao/ [mongo@serv01 Instalacao]$ ls -larth total 97M -rw-r--r--. 1 mongo mongo 97M Set 19 09:38 mongodb-linux-x86_64-rhel70-3.4.9.tgz drwxr-xr-x. 2 mongo mongo 4,0K Nov 12 20:19 . drwxr-xr-x. 4 mongo mongo 4,0K Nov 17 18:05 ..
Certo, então vamos criar o diretório que irá armazenar dos binários do mongo que baixamos do site do mongodb:
[mongo@serv01 Instalacao]$ mkdir -p /opt/mongodb/bin/3.4.9
Agora descompactamos os binários de instalação:
[mongo@serv01 Instalacao]$ ls -lart total 98348 -rw-r--r--. 1 mongo mongo 100693080 Set 19 09:38 mongodb-linux-x86_64-rhel70-3.4.9.tgz drwxr-xr-x. 2 mongo mongo 4096 Nov 12 20:19 . drwxr-xr-x. 4 mongo mongo 4096 Nov 17 18:05 .. [mongo@serv01 Instalacao]$ tar xvf mongodb-linux-x86_64-rhel70-3.4.9.tgz mongodb-linux-x86_64-rhel70-3.4.9/README mongodb-linux-x86_64-rhel70-3.4.9/THIRD-PARTY-NOTICES mongodb-linux-x86_64-rhel70-3.4.9/MPL-2 mongodb-linux-x86_64-rhel70-3.4.9/GNU-AGPL-3.0 mongodb-linux-x86_64-rhel70-3.4.9/bin/mongodump mongodb-linux-x86_64-rhel70-3.4.9/bin/mongorestore mongodb-linux-x86_64-rhel70-3.4.9/bin/mongoexport mongodb-linux-x86_64-rhel70-3.4.9/bin/mongoimport mongodb-linux-x86_64-rhel70-3.4.9/bin/mongostat mongodb-linux-x86_64-rhel70-3.4.9/bin/mongotop mongodb-linux-x86_64-rhel70-3.4.9/bin/bsondump mongodb-linux-x86_64-rhel70-3.4.9/bin/mongofiles mongodb-linux-x86_64-rhel70-3.4.9/bin/mongooplog mongodb-linux-x86_64-rhel70-3.4.9/bin/mongoreplay mongodb-linux-x86_64-rhel70-3.4.9/bin/mongoperf mongodb-linux-x86_64-rhel70-3.4.9/bin/mongod mongodb-linux-x86_64-rhel70-3.4.9/bin/mongos mongodb-linux-x86_64-rhel70-3.4.9/bin/mongo [mongo@serv01 Instalacao]$
Ok, mova a pasta bin que foi descompactada do arquivo que baixamos para: /opt/mongodb/bin/3.4.9, como demonstrado abaixo:
[mongo@serv01 Instalacao]$ cd mongodb-linux-x86_64-rhel70-3.4.9/ [mongo@serv01 mongodb-linux-x86_64-rhel70-3.4.9]$ ll total 120 drwxrwxr-x. 2 mongo mongo 4096 Nov 17 18:15 bin -rw-r--r--. 1 mongo mongo 34520 Set 11 12:32 GNU-AGPL-3.0 -rw-r--r--. 1 mongo mongo 16726 Set 11 12:32 MPL-2 -rw-r--r--. 1 mongo mongo 1359 Set 11 12:32 README -rw-r--r--. 1 mongo mongo 55625 Set 11 12:32 THIRD-PARTY-NOTICES [mongo@serv01 mongodb-linux-x86_64-rhel70-3.4.9]$ [mongo@serv01 mongodb-linux-x86_64-rhel70-3.4.9]$ mv bin /opt/mongodb/bin/3.4.9/
De dentro do diretóro:
[mongo@serv01 3.4.9]$ pwd /opt/mongodb/bin/3.4.9 [mongo@serv01 3.4.9]$ ls bin
Desabilitamos o firewall da máquina com root:
[root@serv01 ~]# service firewalld stop Redirecting to /bin/systemctl stop firewalld.service [root@serv01 ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Agora, com usuário mongo vamos criar um arquivo base de parâmetros ou configuração de uma instância MongoDB. Vamos editar o arquivo com: vi /opt/mongodb/conf/database10000.cnf
Estamos criando o arquivo database10000, este arquivo concatena a porta 10000 junto ao "database" como nome do arquivo.
Para uma configuração standalone server a configuração abaixo é o suficiente, como mencionado na documentação do MongoDB: https://docs.mongodb.com/v3.0/administration/configuration/:
Vamos lá, vamos configurar, coloque dentro do arquivo database10000.cnf o conteúdo abaixo:
[mongo@serv01 ~]$ cat /opt/mongodb/conf/database10000.cnf fork = true bind_ip = 10.0.2.4 port = 10000 quiet = true dbpath = /u00/mongodb/data/10000 logpath = /u00/mongodb/logs/10000/mongod10000.log logappend = true journal = true
O parâmetro bind_ip diz o IP de nosso servidor, enquanto port, nos diz a porta que o mongo estará escutando para execução.
A flag dbpath, indica o diretório dos dados do MongoDB, como não é o padrão, estamos informando o diretório. Já o logpath diz o diretório que armazenará logs do MongoDB.
Após uma instalação do MongoDB, existem várias aplicações no diretório /bin do MongoDB que nos permite a execução de uma série de tarefas, como podemos ver na tabela abaixo:
Tudo certo, agora inicie a instância do MongoDB com o arquivo de configuração que acabamos de criar:
O mongod inicia o daemon ou o serviço do MongoDB.
[mongo@serv01 ~]$ /opt/mongodb/bin/3.4.9/bin/mongod --config /opt/mongodb/conf/database10000.cnf about to fork child process, waiting until server is ready for connections. forked process: 2828 child process started successfully, parent exiting [mongo@serv01 ~]$
Confira que o mongo está executando:
[root@serv01 ~]# ps -ef | grep mongod mongo 2828 1 3 19:02 ? 00:00:00 /opt/mongodb/bin/3.4.9/bin/mongod --config /opt/mongodb/conf/database10000.cnf root 2853 2730 0 19:02 pts/1 00:00:00 grep --color=auto mongod
Vamos efetuar um teste de conexão no MongoDB com o utilitário shell: "mongo", passando o nosso servidor e a porta que configuramos, 10000:
Na sequencia já vamos listar os bancos disponíveis no MongoDB com o comando: show dbs.
[mongo@serv01 ~]$ /opt/mongodb/bin/3.4.9/bin/mongo serv01.localdomain:10000 MongoDB shell version v3.4.9 connecting to: serv01.localdomain:10000 MongoDB server version: 3.4.9 Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user Server has startup warnings: 2017-11-17T19:02:18.966-0200 I STORAGE [initandlisten] 2017-11-17T19:02:18.967-0200 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 2017-11-17T19:02:18.967-0200 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem 2017-11-17T19:02:19.588-0200 I CONTROL [initandlisten] 2017-11-17T19:02:19.588-0200 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2017-11-17T19:02:19.588-0200 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2017-11-17T19:02:19.588-0200 I CONTROL [initandlisten] 2017-11-17T19:02:19.589-0200 I CONTROL [initandlisten] 2017-11-17T19:02:19.589-0200 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2017-11-17T19:02:19.589-0200 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2017-11-17T19:02:19.589-0200 I CONTROL [initandlisten] 2017-11-17T19:02:19.589-0200 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2017-11-17T19:02:19.589-0200 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2017-11-17T19:02:19.589-0200 I CONTROL [initandlisten] > show dbs admin 0.000GB local 0.000GB >
Abaixo deixo um tabela com alguns comandos básicos para serem executados e testados no shell do MongoDB:
Bom, é isso ae pessoal. Claro que não removemos o warnings, não configuramos os limites de configuração de memória e etc, foi apenas uma instalação básica para iniciar seus estudos.
Abraço,
Ronaldo.
Nenhum comentário:
Postar um comentário