Installare MySQL in Ubuntu 20.04
MySQL è uno dei più popolari database open source. È particolarmente apprezzato per quanto riguarda prestazioni, affidabilità e scalabilità ed è utilizzato in molti settori, dai piccoli sistemi di web hosting alle grandi applicazioni aziendali. Qui ti guideremo durante ogni fase del processo di installazione di MySQL su Ubuntu 20.04, così che tu riesca a configurare un sistema di gestione di database affidabile e sicuro.
Quali sono i requisiti di MySQL su Ubuntu 20.04?
Nell’insieme, i requisiti di sistema per installare MySQL su Ubuntu 20.04 sono relativamente limitati e dovrebbero poter essere soddisfatti dalla maggior parte dei moderni sistemi desktop e server. Occorre tuttavia considerare che i requisiti possono variare a seconda dell’uso che se ne intende fare e delle dimensioni del database. Se ad esempio hai intenzione di eseguire un’applicazione ad alta intensità che prevede l’uso di grandi database o di query complesse, saranno necessari requisiti di RAM e processore più elevati, in grado di garantire prestazioni migliori. Un disco rigido capiente consente di soddisfare le esigenze di una crescita futura e di ulteriori database.
Per garantire una comunicazione fluida tra il server MySQL e i client, è opportuno controllare attentamente anche la configurazione della rete e le impostazioni del firewall. Per evitare problemi di connessione, il server MySQL dovrebbe avere un indirizzo IP statico.
MySQL ha i seguenti requisiti minimi di hardware e software:
- Processore (CPU): architettura x86-64, min. 1 GHz (Dual-Core)
- Memoria ad accesso casuale (RAM): min. 1 GB
- Sistema operativo: Ubuntu 20.04, utente sudo con autorizzazioni root
- Firewall: porta 3306 MySQL aperta
- Disco rigido: min. 500 MB
- Connessione internet: per scaricare i pacchetti e stabilire la connessione al server MySQL
- Hardware dedicato al 100%
- Fatturazione al minuto
- Potenziato dai processori Intel® Xeon® e AMD
Configurare MySQL su Ubuntu 20.04: istruzioni dettagliate
Per installare MySQL su Ubuntu 20.04 è possibile utilizzare il sistema di gestione dei pacchetti APT (Advanced Package Tool). Una volta terminata l’installazione, sarà necessario impostare e configurare MySQL prima di poterlo utilizzare proficuamente. A tal proposito, occorre anche impostare la password di root e l’accesso per i client esterni. Nel nostro tutorial ti mostreremo come procedere passo dopo passo.
Primo passaggio: aggiornare l’indice del pacchetto
Per prima cosa, sarebbe opportuno aggiornare l’elenco dei pacchetti. Per farlo, basta eseguire il seguente comando:
$ sudo apt update
bashSecondo passaggio: installare il server MySQL
A questo punto, installa il pacchetto del server MySQL tramite APT:
$ sudo apt install mysql-server
bashIl server può essere avviato manualmente con il comando systemctl per verificare che sia davvero in funzione:
$ sudo systemctl start mysql.service
bashTerzo passaggio: configurare MySQL
Al termine dell’installazione, MySQL non è ancora conforme agli standard di sicurezza raccomandati. Per ovviare a questo problema, MySQL offre uno script che modifica le impostazioni per proteggere il server. Questo script si occupa, ad esempio, di impostare la password di root, rimuovere eventuali utenti anonimi e limitare l’accesso remoto.
Per eseguire correttamente lo script, tuttavia, è necessario prendere alcune precauzioni. Questo perché l’applicazione vorrà cambiare la password dell’account di root, che è disabilitata per impostazione predefinita in Ubuntu. Per aggirare l’errore, occorre modificare il metodo di autenticazione dell’utente root.
Avvia il prompt di MySQL:
$ sudo mysql
bashCon l’istruzione ALTER USER imposti una password per root:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
bashOra chiudi nuovamente il prompt di MySQL:
mysql> exit
bashEsegui lo script di sicurezza:
$ sudo mysql_secure_installation
bashPer autenticarti come utente root, immetti quanto segue:
$ mysql -u root -p
bashTerminato lo script, puoi cambiare di nuovo il metodo di autenticazione predefinito:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
bashIn questo modo sarai in grado di connetterti nuovamente mediante il comando sudo mysql.
Quarto passaggio: creazione dell’utente MySQL
Con l’installazione di MySQL viene creata la figura dell’utente root, che ha tutti i privilegi per il server MySQL e il controllo completo su tutti i database, le tabelle e le utenze. Al fine di aumentare la sicurezza, è quindi opportuno creare l’utente con privilegi limitati.
Per farlo, apri il prompt di MySQL:
$ sudo mysql
bashSe come metodo di autenticazione è stata impostata una password, utilizza il seguente comando:
$ mysql -u root -p
bashOra crea una nuova utenza per MySQL:
mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
bashAl posto di “username” inserisci il tuo nome utente e al posto di “host” inserisci il nome del tuo host. Se stai eseguendo Ubuntu in locale, scrivi localhost. La dicitura “WITH authentication_plugin” è facoltativa. Il plugin “auth_socket” dispone di impostazioni di sicurezza abbastanza forti da non richiedere una password per l’accesso.
In assenza di ulteriori specifiche, MySQL si avvale del plugin “caching_sha2_password” per l’autenticazione. Alcune versioni di PHP, tuttavia, non sono compatibili con questo plugin. Puoi sempre ricorrere al vecchio ma collaudato plugin “mysql_native_password”:
mysql> CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
bashIn alternativa, è possibile utilizzare la funzione “ALTER” per utenti già esistenti:
mysql> ALTER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
bashQuinto passaggio: assegnare i permessi
Adesso è necessario stabilire quali privilegi assegnare all’utente appena creato. La sintassi generale è la seguente:
mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';
bashI privilegi multipli sono separati da una virgola. Per applicare i privilegi globali, sostituisci “database.table” con un asterisco (“*”).
Nell’esempio seguente, diamo all’utente le autorizzazioni per creare (CREATE), modificare (ALTER), cancellare (DROP), inserire (INSERT), selezionare (SELECT), aggiornare (UPDATE) e rimuovere (DELETE) i dati di una tabella.
mysql> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'user'@'host' WITH GRANT OPTION;
bashUtilizzando “WITH GRANT OPTION”, l’utente può anche concedere i propri permessi ad altri.
Svuota ora la cache con “FLUSH PRIVILEGES”:
mysql> FLUSH PRIVILEGES;
bashA questo punto è possibile chiudere il prompt di MySQL:
mysql> exit
bashEffettua il login con il nuovo nome utente:
$ mysql -u username -p
bashSesto passaggio: testare MySQL
Verifica che MySQL sia in esecuzione correttamente, ad esempio attraverso il gestore di sistema Systemd:
$ systemctl status mysql.service
bashIn alternativa, puoi effettuare la connessione al database MySQL. Usa il seguente comando per accedere a MySQL e visualizzare la versione del server:
$ sudo mysqladmin -p -u username version
bash