4. Installare MariaDB
4. Installare MariaDB
Passiamo a installare un database di backend.
Tradizionalmente MySQL era il database dedicato alle applicazioni e siti costruiti con PHP e Apache. Quando la Oracle comprò la Sun, modificando la licenza d’uso di MySQL (ed anche il suo sviluppo) nacque lo spin-off MariaDB. Da alcuni anni le distribuzioni Linux hanno di serie sia MySQL, sia MariaDB.
Senza entrare in spiegazioni (noiose) qui di seguito descriviamo l’installazione e l’uso di MariaDB. Successivamente aggiungeremo nel web server PhpMyAdmin, un programma per gestire il database direttamente dal web. Poi vedremo l’uso di DBeaver, un’app desktop per gestire MariaDB e ogni tipo di database.
Non vedremo nulla, invece, circa l’SQL, il linguaggio per parlare con MariaDB e circa la gestione di MariaDB anche se si tratta di conoscenze che è opportuno acquisire per gestire adeguatamente un web server. Esulano dagli scopi di questa guida.
4.1. Installiamo MariaDB
L’installazione viene fatta in due passi:
-
installazione di MariaDB;
-
securizzazione di MariaDB.
All’installazione MariaDB è aperto a tutti e non ha password. Per questo motivo è necessario securizzarlo.
Sempre operando dal nostro terminale sul server www.example.com diamo il seguente comando:
sudo apt install mariadb-server
l’istruzione installa sia la componente server, sia la componente client.
Al termine dell’installazione il database viene automaticamente avviato e impostato come servizio disponibile ad ogni riavvio.
Procediamo alla securizzazione tramite mariadb-secure-installation :
sudo mariadb-secure-installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none): RETURN
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] RETURN
Enabled successfully!
Reloading privilege tables..
... Success!
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] RETURN
New password: MiaPassword
Re-enter new password: MiaPassword
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] RETURN
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] RETURN
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] RETURN
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] RETURN
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Evidenziate le azioni:
-
RETURN: premere il tasto invio della tastiera;
-
MiaPassword: la password per l’utente root di MariaDB. Ovviamente mettete la vostra password sicura.
Nota 1: per usare l’utente root di MariaDB è necessaria una password.
Nota 2: l’utente di sistema root dal terminale è automaticamente trustato e non viene chiesta la password.
4.2. Verifichiamo MariaDB
Verifichiamo il nostro server con una richiesta di versione e una query base.
Vediamo la versione di MariaDB:
mariadbd -V
mariadbd Ver 10.6.16-MariaDB-0ubuntu0.22.04.1 for debian-linux-gnu on x86_64 (Ubuntu 22.04)
Accediamo alla command-line mariadb , chiediamo l’elenco dei database e usciamo:
sudo mariadb -h localhost
ariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.001 sec)
MariaDB [(none)]> \q
Bye
4.3. Gestiamo MariaDB con PhpMyAdmin
PhpMyAdmin è presente nei repo default di Ubuntu e lo possiamo installare direttamente con apt . Procederemo, invece, installandolo manualmente: operazione più laboriosa, ma utile allo scopo didattico. Sarà la metodologia che useremo anche per installare i CMS.
-
Sempre operando dal nostro terminale sul server www.example.com installiamo le utility wget e unzip
sudo apt install wget unzip
-
creiamo una directory di comodo e accediamoci
mkdir Temp && cd Temp
-
scarichiamo PhpMyAdmin
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
-
estraiamo il pacchetto
unzip phpMyAdmin-5.2.1-all-languages.zip
-
spostiamo i file di PhpMyAdmin nella web root e rinominiamo la directory da phpMyAdmin-5.2.1-all-languages a pma
sudo mv -r phpMyAdmin-5.2.1-all-languages /var/www/html/pma
-
creiamo il file di configurazione e lanciamo l’editor
sudo cp /var/www/html/pma/config.sample.inc.php /var/www/html/pma/config.inc.php
sudo nano /var/www/html/pma/config.inc.php
-
inseriamo una password per il meccanismo blowfish: basta inserire una lunga stringa di caratteri casuali come nell’esempio qui di seguito.
Per uscire dall’editor cliccare CTRL+X, confermare con Y e premere invio
[ ... ]
$cfg['blowfish_secret'] = 'ihpeblòfgourhg9073290563phjasncòa cdpo3ur94153476091kjhtra2'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
[ ... ]
dalla workstation client apriamo un web browser, come FireFox o Edge, e accediamo all’indirizzo http://www.example.com/pma .
Comparirà la seguente pagina
Figura 7: Login di PhpMyAdmin
Inseriamo le nostre credenziali (utente root e la password impostata prima con mariadb-secure-installation )
Figura 8: Login di PhpMyAdmin: inserimento delle credenziali
comparirà la pagina principale: MariaDB è funzionante, ma ancora vuoto.
Figura 9: Home di PhpMyAdmin
Procediamo creando un utente remoto per la gestione totale di MariaDB che useremo dopo con DBeaver.
Nota: a titolo didattico creeremo un utente che può connettersi da ovunque: non è una buona politica di sicurezza! Va bene solo a scopo didattico e negli ambienti di sviluppo!
-
Clicchiamo sul bottone “
”;
-
clicchiamo su “Aggiungi account utente”
-
Figura 10: PhpMyAdmin: link per accedere alla creazione di un utente
nella form che compare impostiamoNome utente: remoteroot
Nome host: %
Password: PasswordEsempio
Privilegi globali: Seleziona tutto
Figura 11: PhpMyAdmin. Creazione di un utente: inserimento dei dati
4.4.
Figura 12: PhpMyAdmin. Creazione di un utente: impostazione dei permessi
Gestiamo MariaDB da DBeaver
PhpMyAdmin è uno stupendo strumento per gestire i nostri database da un’interfaccia web.
Per diverse ragioni è utile avere un software desktop per gestire i nostri database remoti e/o locali. Useremo DBeaver ( https://dbeaver.io ) una soluzione open source, compatibile con Windows, Linux e Mac e in grado di gestire svariati database tra cui MariaDB e PostgreSQL (di cui parleremo qui di seguito).
Scarichiamo e installiamo DBeaver sulla nostra workstation e lanciamolo. Comparirà una scremata simile a quella qui di seguito
Figura 13: DBeaver: schermata al primo lancio
procediamo creando la prima connessione.
-
Clicchiamo sull’icona di MariaDB e poi sul bottone in basso “Avanti”;
-
compiliamo la form di creazione collegamento come segue
Server HOST: localhost
Porta: 3306
Nome utente: remoteroot
Password: PasswordEsempio
Salva password: selezionato -
Figura 14: DBeaver: creazione di una connessione. Inserimento dati di accesso a MariaDB
clicchiamo sul tab SSH e impostiamo i dati per l’accesso remoto ssh usati finora -
Figura 15: DBeaver: creazione di una connessione. Inserimento dati di accesso al server
segue una richiesta una tantum per scaricare il driver specifico per creare la connessione al database. Confermare e proseguire -
Figura 16: DBeaver: schermata informativa per lo scaricamento del connector per MariaDB
a questo punto abbiamo disponibile una nuova connessione sulla colonna di sinistra -
Figura 17: DBeaver: collocamento della connessione al database
doppio click sulla connessione per aprire il collegamento al server
Figura 18: DBeaver: schermata dopo la connessione a un database
Connessione riuscita!
A questo punto abbiamo i permessi per fare ogni cosa.
4.5. PostgreSQL
Una piccola digressione circa PostgreSQL, un database alternativo, sempre open source, costruito sul concetto software di oggetto. MySQL e MariaDB, invece, sono costruiti sul concetto di tabelle relazionate.
Tecnicamente è più potente di MariaDB, gestisce funzioni più avanzate, supporta linguaggi aggiuntivi e una più ampia tipologia di dati.
Accanto a queste ed altre caratteristiche specifiche, diverse applicazioni sono costruite su questo DBMS e l’uso si è molto diffuso.
La gestione è molto diversa da MariaDB, ma esistono, oltre a DBeaver, tre interessanti applicativi (web e desktop) che semplificano la gestione: pgAdmin, Admin4 e phpPgAdmin (fork di PhpMyAdmin).
Questo fantastico database va un po’ studiato per usarlo, ma dopo una fatica iniziale, paga abbondantemente lo sforzo sostenuto.
Ricordiamolo e conosciamolo anche se non lo useremo.