Neste blog falamos sobre alguns sistemas de banco de dados, entre os quais os mais populares são MariaDB e MySQL, já que são os sistemas que normalmente estão incluídos no Xampp ou Lampp. Desta vez, vamos falar sobre outro sistema que é MongoDB.
MongoDB é um sistema de banco de dados NoSQL orientado a documentos de código aberto, este é um moderno sistema de gerenciamento de banco de dados de documentos projetado para persistência de dados de alto desempenho, alta disponibilidade, bem como escalonamento automático, baseado na tecnologia da técnica NoSQL.
Em vez de salvar dados em tabelas como é feito em bancos de dados relacionais, o MongoDB salva estruturas de dados em um documento, que é uma estrutura de dados composta por pares de campo e valor (os documentos do MongoDB são comparáveis aos objetos JSON).
Por fornecer alto desempenho e excelentes características de escalabilidade, está sendo usado para construir aplicativos modernos que requerem bancos de dados poderosos, de missão crítica e altamente disponíveis.
Instalação do MongoDB no Ubuntu
Para instalar este sistema de banco de dados em nosso sistema, Só precisamos abrir um terminal e executar o seguinte comando nele:
sudo apt install mongodb
Instalação feita, O serviço MongoDB será iniciado automaticamente via systemd e o processo será executado na porta 27017. Você pode verificar seu status usando o comando:
sudo systemctl status mongodb
Caso contrário, podemos forçar o início com este comando:
sudo systemctl start mongodb
Habilitando conexões remotas para MongoDB
O sistema de banco de dados MongoDB por padrão usa a porta 27017 que devemos abrir Para aceitar conexões remotas, só o habilitamos com o seguinte comando.
sudo ufw allow 27017
Por padrão, a porta 27017 só pode ser acessada a partir do endereço local 127.0.0.1. Para permitir conexões remotas ao MongoDB, é necessário adicionar o endereço IP do servidor no arquivo /etc/mongodb.conf
Basta editar com:
sudo nano
E podemos ver algo semelhante a isto:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Que editamos com os dados do nosso servidor.
Permitindo acesso ao MongoDB de qualquer lugar, ele fornece acesso irrestrito aos dados no banco de dados. Portanto, é melhor dar acesso ao endereço IP padrão específico do local da porta do MongoDB.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Feito isso, basta reiniciar o serviço para que as novas alterações sejam carregadas no início, isso fazemos com:
sudo systemctl restart mongodb
Crie um usuário no MongoDB com senha
Por padrão, o banco de dados tem acesso bastante simples, portanto, para reforçar isso, podemos criar um usuário com uma senha.
MongoDB usa o mecanismo de autenticação SCRAM por padrão. O uso de SCRAM no sistema verifica as credenciais do usuário fornecidas em relação ao nome do usuário, senha e banco de dados de autenticação.
Basta iniciar o console do banco de dados com o seguinte comando:
Mongo
Podemos fazer uma lista dos bancos de dados existentes com:
show dbs
Podemos criar um usuário que nos permitirá gerenciar usuários e funções como criar usuários, conceder ou revogar funções de usuário e criar ou modificar funções alfandegárias.
Basta digitar
use admin
E criamos o usuário com o seguinte comando, onde substituímos o nome do utilizador "root" e a palavra-passe "password", pelos crecenciales de acesso que consideramos adequados.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Feito isso, devemos habilitar o método de autenticação para isso vamos editar o seguinte arquivo:
sudo nano /lib/systemd/system/mongodb.service
E vamos procurar a próxima linha:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
E a edite de modo que seja da seguinte maneira:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Agora nós simplesmente reinicializamos no banco de dados
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Testamos o método de autenticação com:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Me ajude com este ERROR.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Erro: listDatabases falhou: {
«Ok»: 0,
"Errmsg": "não autorizado no admin para executar o comando {listDatabases: 1.0, $ db: \" admin \ "}",
"Código": 13,
"CodeName": "Não autorizado"
}:
_getErrorWithCode@src/mongo/shell/utils.js: 25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js: 65: 1
shellHelper.show@src/mongo/shell/utils.js: 816: 19
shellHelper@src/mongo/shell/utils.js: 706: 15
@ (shellhelp2): 1: 1