In questo blog abbiamo parlato di alcuni sistemi di database, tra i quali i più conosciuti sono MariaDB e MySQL, in quanto sono i sistemi che solitamente sono inclusi in Xampp o Lampp. Questa volta ne parleremo un altro sistema che è MongoDB.
MongoDB lo è un sistema di database NoSQL orientato ai documenti open source, Questo è un moderno sistema di gestione del database dei documenti progettato per la persistenza dei dati ad alte prestazioni, alta disponibilità, nonché scalabilità automatica, basata sulla tecnologia della tecnica NoSQL.
Invece di salvare i dati nelle tabelle come avviene nei database relazionali, MongoDB salva le strutture dei dati in un documento, che è una struttura di dati composta da coppie di campi e valori (i documenti MongoDB sono paragonabili agli oggetti JSON).
Poiché fornisce prestazioni elevate ed eccellenti caratteristiche di scalabilità, viene utilizzato per creare applicazioni moderne che richiedono database potenti, mission-critical e altamente disponibili.
Installazione di MongoDB su Ubuntu
Per installare questo sistema di database sul nostro sistema, Dobbiamo solo aprire un terminale ed eseguire il seguente comando al suo interno:
sudo apt install mongodb
Installazione eseguita, Il servizio MongoDB verrà avviato automaticamente tramite systemd e il processo verrà eseguito sulla porta 27017. Puoi verificarne lo stato utilizzando il comando:
sudo systemctl status mongodb
In caso contrario, possiamo forzare l'inizio con questo comando:
sudo systemctl start mongodb
Abilitazione delle connessioni remote a MongoDB
Il sistema di database MongoDB utilizza per impostazione predefinita la porta 27017 che dobbiamo aprire Per accettare le connessioni remote, lo abilitiamo solo con il seguente comando.
sudo ufw allow 27017
Per impostazione predefinita, è possibile accedere alla porta 27017 solo dall'indirizzo locale 127.0.0.1. Per consentire le connessioni remote a MongoDB, è necessario aggiungere l'indirizzo IP del server nel file /etc/mongodb.conf
Basta modificarlo con:
sudo nano
E possiamo vedere qualcosa di simile a questo:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Che modifichiamo con i dati del nostro server.
Consentendo l'accesso a MongoDB da qualsiasi luogo, offre accesso illimitato ai dati nel database. Pertanto, è meglio dare accesso all'indirizzo IP predefinito specifico della posizione della porta MongoDB.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Fatto ciò, è sufficiente riavviare il servizio in modo che le nuove modifiche vengano caricate all'inizio, questo facciamo con:
sudo systemctl restart mongodb
Crea un utente in MongoDB con password
Di default il database ha un accesso abbastanza semplice, quindi per rinforzarlo possiamo creare un utente con una password.
MongoDB utilizza il meccanismo di autenticazione SCRAM per impostazione predefinita. L'utilizzo di SCRAM sul sistema verifica le credenziali utente fornite rispetto a nome utente, password e database di autenticazione.
Basta avviare la console del database con il seguente comando:
Mongo
Possiamo fare un elenco dei database esistenti con:
show dbs
Possiamo creare un utente che ci permetterà di gestire utenti e funzioni come la creazione di utenti, la concessione o la revoca di ruoli utente e la creazione o la modifica di ruoli doganali.
Basta digitare
use admin
E creiamo l'utente con il seguente comando, dove sostituiamo il nome dell'utente "root" e la password "password", con le credenziali di accesso che riteniamo appropriate.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Fatto ciò, dobbiamo abilitare il metodo di autenticazione per questo andremo a modificare il seguente file:
sudo nano /lib/systemd/system/mongodb.service
E cercheremo la riga successiva:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
E la modifica in modo che sia il seguente:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Ora dobbiamo semplicemente riavviare nel database
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Testiamo il metodo di autenticazione con:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Aiutami con questo ERRORE.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Errore: listDatabases non riuscita: {
«Ok»: 0,
"Errmsg": "non autorizzato sull'amministratore ad eseguire il comando {listDatabases: 1.0, $ db: \" admin \ "}",
"Codice": 13,
"CodeName": "Non autorizzato"
}:
_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