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

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop) - mysql logo spotlight

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:

  1. clicca sul pulsante con i 3x3 punti in basso a sinistra
  2. digita terminale
  3. clicca sul collegamento mostrato

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop) - linux apri terminale

» 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)

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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)

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

» 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

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

[ 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

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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 compatibile
  • mysql_native_password: algoritmo "classico", compatibile con qualsiasi software in circolazione

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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 (battere Q sulla tastiera per uscire)
  • avvio: systemctl start mysql
  • stop: systemctl stop mysql
  • riavvio: systemctl restart mysql

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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"!

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

Come prima query, tanto per fare una prova, puoi richiedere la lista dei database impartendo:

show databases;

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop)

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:

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

Guida: come installare MySQL 8 Ubuntu (Linux Server PC Desktop) - mysql workbench linux

Per maggiori informazioni sull'uso di MySQL Workbench, rimando alla guida a MySQL su Windows: il programma funziona esattamente allo stesso modo.