MySQL è il popolarissimo database relazionale (RDBMS) gratuito ed open source che, in ambito applicativo/web server, svolge il ruolo di "contenitore" per i dati (account degli utenti, messaggi, blogpost ecc.). In questo articolo vedremo come installare MySQL 8 sul PC o server Linux (Ubuntu), per iniziare subito a leggere e scrivere righe e tabelle dall'app che stiamo sviluppando o dal nostro web server con PHP
Trattazione aggiornata per funzionare al meglio con Ubuntu 22.04 e MySQL 8
nota: In questo articolo ci concentreremo, nello specifico, sull'installazione di MySQL 8 in ambiente Linux. Per la guida equivalente incentrata su Windows:
» Leggi: La Grande Guida ad Apache, MySQL, PHP
La procedura è stata testata su Ubuntu 22.04 e 20.04, ma è analoga per tutte le distribuzioni derivate (fra le quali "Mint") e, presumibilmente, per le iterazioni successive.
Una stesura precedente di questa guida (archiviata qui) trattava anche CentOS, mentre oggi è focalizzata unicamente su Ubuntu.
Installare MySQL 8 su Linux Ubuntu: Aprire il Terminale
Se stai lavorando via SSH oppure su Ubuntu Server sei già davanti alla linea di comando, quindi prosegui oltre.
Se però ti trovi in un ambiente grafico, devi avviare il Terminale: il mio metodo preferito è tramite la combinazione da tastiera Ctrl+Alt+T
. In alternativa:
- clicca sul pulsante con i 3x3 punti in basso a sinistra
- digita
terminale
- clicca sul collegamento mostrato
» Leggi anche: Come aprire il terminale di Ubuntu
Installare MySQL 8 su Linux Ubuntu: Installazione completamente automatica
Da questa situazione, puoi installare MySQL in modo completamente automatico impartendo questo singolo comando:
sudo apt install curl -y && curl -s https://raw.githubusercontent.com/TurboLabIt/webstackup/master/script/mysql/install.sh?$(date +%s) | sudo bash
In caso fosse richiesta la password, digita quella del tuo utente Linux (quella che usi per eseguire login al sistema)
Il comando appena impartito esegue uno script (disponibile qui) che svolge in sequenza tutte le tediose operazioni che, altrimenti, dovremmo impartire manualmente (vedi seguito dell'articolo).
Lo script genera automaticamente le credenziali per l'account root di MySQL. La password è generata casualmente, e diversa ad ogni esecuzione. Dette credenziali sono mostrate a schermo durante l'installazione, ma vengono anche salvate nel file /etc/turbolab.it/mysql.conf
, di modo da poterle recuperare al volo in caso di necessità, ma anche di modo da renderle disponibili ad altri script, come zzmysqldump
Il file /etc/turbolab.it/mysql.conf
generato è accessibile solo disponendo dei privilegi massimi. Per visualizzare il contenuto è dunque necessario preporre sudo
. Ad esempio:
cat /etc/turbolab.it/mysql.conf
Un altro automatismo utile è la copia di un file di configurazione aggiuntivo (disponibile qui) nel percorso /etc/mysql/mysql.conf.d/webstackup.cnf
- vedi paragrafo dedicato, più avanti in questo articolo, per maggiori informazioni.
Infine, lo script installa e rende disponibile anche mysqltuner: uno strumento che permette di analizzare l'installazione e fornisce suggerimenti per ottimizzare le prestazioni
Una volta completata l'esecuzione, l'istanza di MySQL è immediatamente disponibile. Vedi paragrafi successivi per la procedura di connessione.
Installare MySQL su Linux Ubuntu: Installazione automatica di una versione specifica
Lo script presentato un attimo fa installa, di default, l'ultima versione di MySQL giudicata "stabile" e consigliata dal produttore. Al momento in cui scrivo, si tratta di MySQL 8.0.
In caso fosse necessario installare una versione precedente, come ad esempio MySQL 5.7, è sufficiente esplicitarla in questo modo:
sudo apt install curl -y && curl -s https://raw.githubusercontent.com/TurboLabIt/webstackup/master/script/mysql/install.sh?$(date +%s) | sudo MYSQL_VER=5.7 bash
Anche in questo caso, al termine, l'istanza di MySQL è immediatamente disponibile. Vedi paragrafi successivi per la procedura di connessione.
Installare MySQL 8 su Linux Ubuntu, Passo 1: Diventare root
La procedura tramite script descritta ai paragrafi precedenti installa MySQL automaticamente ed è la modalità che, personalmente, raccomando. Se però preferisci installare MySQL manualmente, puoi ottenere un risultato analogo seguendo i passaggi forniti di seguito.
Per prima cosa, devi acquisire i privilegi massimi diventando root. Il comando è:
sudo -s
In caso ti fosse richiesta la password, digita quella del tuo utente Linux (quella che usi per eseguire login al PC)
» Leggi anche: Sudo senza password con Ubuntu: come disabilitare la richiesta di password quando si eseguono comandi come root (video)
Installare MySQL 8 su Linux Ubuntu, Passo 2: Disinstallare... MySQL
Prima di proseguire, è opportuno verificare che MySQL non sia già stato installato, magari per errore. Il modo più efficace di farlo è tramite il gestore dei pacchetti:
dpkg --list | grep mysql
Se il comando non mostra alcuna risposta, possiamo tranquillamente andare oltre perché MySQL non è installato. In caso contrario, è fondamentale disinstallare il pacchetto di MySQL corrente:
apt purge --auto-remove mysql* -y
In caso comparisse un messaggio simile a This operation will remove the data directory at '/var/lib/mysql'
, è bene prestare la massima attenzione
Significa infatti che la procedura sta per rimuovere, oltre al "programma" MySQL, anche tutti i database salvati sul disco. Generalmente, vorremo rispondere No
, di modo da mantenere tutti i database già presenti sul sistema e riutilizzarli con la nuova versione di MySQL che stiamo per installare.
Se però sei stra-sicuro di voler fare piazza pulita di tutto, rispondi Yes
.
In fine, raccomando caldamente di eliminare eventuali file di configurazione relativi alla precedente installazione, di modo da partire con una situazione pulita:
rm -rf /etc/mysql
Installare MySQL 8 su Linux Ubuntu, Passo 3: Aggiungere i repository ufficiali di MySQL
Le distribuzioni Linux come Ubuntu rendono disponibili nei rispettivi repository i pacchetti per MySQL. Ma Oracle, lo sviluppatore di MySQL, offre una propria fonte ufficiale che contiene, generalmente, versioni più aggiornate. A mio avviso, è meglio prelevare MySQL da quest'ultima.
Iniziamo dunque impartendo questa sequenza di comandi concatenati per "agganciare" il repository MySQL di Oracle:
apt update && apt install curl gnupg -y && curl -o mysqlrepo https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb -L && dpkg -i mysqlrepo && rm -f mysqlrepo
[ il comando comprende il nome di un file ad una determinata versione (mysql-apt-config_xxx.deb
). In linea di massima, quella indicata dovrebbe funzionare correttamente oggi e nel prossimo futuro. Così non fosse, prelevare l'URL al file aggiornato da questa pagina, quindi sostituirlo nel comando appena mostrato ]
Il comando avvia una mini-procedura che permette di scegliere la versione di MySQL da installare ed i vari pacchetti opzionali. Generalmente, vorremo solo scegliere Ok
in fondo alla lista e premere Invio
Installare MySQL 8 su Linux Ubuntu, Passo 4: Installazione del pacchetto MySQL
Il comando precedente configura solo l'utilizzo del repository MySQL di Oracle, ma non installa materialmente il programma. Per farlo, dobbiamo impartire quest'altro comando concatenato:
apt update && apt install mysql-server mysql-client -y
Installare MySQL 8 su Linux Ubuntu, Passo 5: Scegliere la password di root di MySQL
La procedura di setup ci richiede di scegliere una password per l'utente root
di MySQL, ovvero l'amministratore onnipotente del database, poi digitarla di nuovo per conferma
Installare MySQL 8 su Linux Ubuntu, Passo 6: Scelta del plugin di autenticazione
La schermata successiva chiede di selezionare il plugin di autenticazione da utilizzare per impostazione predefinita. Le scelte disponibili sono:
caching_sha2_password
: nuovo algoritmo, ancora più sicuro ma meno compatibilemysql_native_password
: algoritmo "classico", compatibile con qualsiasi software in circolazione
Personalmente, raccomando di scegliere il plugin tradizionale (scelta corrispondente all'opzione Use Legacy Authentication Method
): questo garantirà la compatibilità ottimale, ad oggi ancora necessaria per utilizzare senza problemi molti driver e programmi di gestione.
Da qui in poi l'installazione si conclude automaticamente.
Installare MySQL 8 su Linux Ubuntu, Passo 7: Scaricare il file di configurazione aggiuntivo
Prima di andare oltre, raccomando di scaricare questo file di configurazione aggiuntivo:
curl -Lo /etc/mysql/mysql.conf.d/webstackup.cnf "https://raw.githubusercontent.com/TurboLabIt/webstackup/master/config/mysql/mysql.cnf" && chmod u=rw,go=r /etc/mysql/mysql.conf.d/*.cnf
Possiamo dunque ispezionarlo e modificarlo impartendo
nano /etc/mysql/mysql.conf.d/webstackup.cnf
Detto file contiene alcune impostazioni generalmente desiderabili, fra le quali segnalo:
- il processo accetta connessioni solo dal server stesso, non da Internet
- il plugin di autenticazione predefinito è
mysql_native_password
(il migliore compatibilità) - il numero massimo di connessioni contemporanee è alzato a
250
- varie ottimizzazioni ai parametri del motore InnoDB
Il file è comunque liberamente modificabile per meglio adattarsi alle specificità del server e dell'applicazione.
Per rendere effettive le modifiche, riavvia MySQL con
systemctl restart mysql
Installare MySQL 8 su Linux Ubuntu, Passo 8: Gestire il servizio
MySQL è ora installato ed attivo, e il relativo servizio parte automaticamente ad ogni boot del sistema. È comunque bene ricordare rapidamente i comandi per gestire il servizio:
- visualizzazione stato:
systemctl status mysql
(battereQ
sulla tastiera per uscire) - avvio:
systemctl start mysql
- stop:
systemctl stop mysql
-
riavvio:
systemctl restart mysql
Installare MySQL 8 su Linux Ubuntu, Passo 9: Connettersi tramite il client MySQL da linea di comando
Per testare immediatamente il database possiamo connetterci tramite linea di comando impartendo:
mysql -u root -p
Quando richiesto, digita la password di root che hai scelto durante l'installazione di MySQL (Passo 7
di questa guida).
Non appena vedrai il prompt mysql>
, significa che la connessione è stata stabilita e sei "dentro"!
Come prima query, tanto per fare una prova, puoi richiedere la lista dei database impartendo:
show databases;
Per uscire, basta impartire exit;
.
Installare MySQL 8 su Linux Ubuntu, Passo 10: Installare MySQL Workbench
Chiaramente, gestire il database da linea di comando non è molto comodo. Allo scopo, meglio usare MySQL Workbench: un ottimo programma grafico per connettersi ai database MySQL. Oltre ad eseguire query SQL e mostrare il risultato in forma tabellare, ci consente di avviare o arrestare il servizio, visualizzare molte informazioni utili e svolgere una lista praticamente infinita di operazioni strutturali, grafiche e di progettazione.
Installiamolo dunque su un PC dotato di interfaccia grafica:
- Ubuntu:
apt-get update && apt-get install mysql-workbench -y
- Windows: Fare riferimento alla sezione dedicata a MySQL Workbench di questo articolo: Guida: installare MySQL sul PC Windows
Completato il setup, cerchiamo MySQL Workbench
sotto la dash di Ubuntu o il menu di Start di Windows e lanciamo l'omonimo programma.
Clicca sul rettangolo Local instance MySQL
per connetterti al servizio locale. Specifica la password di root, spunta la casella di controllo per salvarla e, dopo aver cliccato OK
, dovresti trovarti davanti al database MySQL locale
Per maggiori informazioni sull'uso di MySQL Workbench, rimando alla guida a MySQL su Windows: il programma funziona esattamente allo stesso modo.