Installazione di MongoDB su Ubuntu 18.04
In questo tutorial andremo a descrivere passo passo l’installazione del database open source MongoDB su Linux Ubuntu 18.04.
Consideriamo di partire da una macchina virtuale Ubuntu 18.04 ( per l’installazione seguire l’ articolo) ed aggiorniamola
sudo apt-get update
sudo apt-get upgrade
installiamo il database MongoDB
sudo apt-get install mongodb
abilitiamo l’avvio automatico al boot
sudo systemctl enable mongodb
e verifichiamo lo stato
sudo systemctl status mongodb
avremo il seguente risultato
● mongodb.service – An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-09-13 11:51:04 CEST; 2min 52s ago
Docs: man:mongod(1)
Main PID: 19447 (mongod)
Tasks: 23 (limit: 1113)
CGroup: /system.slice/mongodb.service
└─19447 /usr/bin/mongod –unixSocketPrefix=/run/mongodb –config /etc/mongodb.confset 13 11:51:04 ubuntutest systemd[1]: Started An object/document-oriented database.
Tra le possibili configurazioni di MongoDb è possibile cambiare la porta di ascolto di default è 27017 dal file di configurazione principale
sudo vim /etc/mongodb.conf
di default è commentata, ma è possibile decommentarla ed inserire una porta differente, ad esempio
port = 2727
ed impostiamo sempre nella configurazione di MongoDB, il legame del motore all’indirizzo del server stesso per eventuali accessi da remoto
bind =127.0.0.1,ip_server
supponiamo di considerare la porta standard di MongoDB, per l’accesso da remoto al server MongoDB abilitiamo la porta sul firewall
sudo ufw allow 27017
Regola aggiunta
Regola aggiunta (v6)
Per rendere si curo l’accesso al database, configuriamo un utente amministratore
mongo
avremo differenti warning per il controllo degli accessi, in particolare
2018-09-13T11:51:04.554+0200 I STORAGE [initandlisten]
2018-09-13T11:51:04.554+0200 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2018-09-13T11:51:04.554+0200 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2018-09-13T11:51:05.791+0200 I CONTROL [initandlisten]
2018-09-13T11:51:05.791+0200 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-09-13T11:51:05.791+0200 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2018-09-13T11:51:05.791+0200 I CONTROL [initandlisten]
per avere evidenza dei database iniziali eseguiamo
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
selezioniamo il database admin
> use admin
ed aggiungiamo l’utente admin
> db.createUser({user:"admin", pwd:"test", roles:[{role:"root", db:"admin"}]})
avremo
Successfully added user: {
“user” : “admin”,
“roles” : [
{
“role” : “root”,
“db” : “admin”
}
]
}
a questo punto possiamo uscire
>exit
Modifichiamo il servizio di avvio automatico
vim /lib/systemd/system/mongodb.service
e modifichiamo la riga di esecuzione del demone mongod
ExecStart=/usr/bin/mongod –auth –unixSocketPrefix=${SOCKETPATH} –config ${CONF} $DAEMON_OPTS
systemctl daemon-reload
systemctl restart mongodb
Possiamo accedere al database attraverso il seguente comando
mongo localhost:27017 -u admin -p
dopo aver inserito la password possiamo creare un database di esempio
>use test
switched to db test
creiamo l’utente
>db.users.save( {username:"test1"} )
WriteResult({ “nInserted” : 1 })
verifichiamo l’esistenza
>db.users.find( {username:"test1"} )
{ “_id” : ObjectId(“5b9a5dd6618a26a3d7c227e3”), “username” : “test1” }
controlliamo l’effetiva esistenza del database
>show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
test 0.000GB