
MySQL è il più popolare sistema di gestione di database relazionali open source.
L'ultima versione del server di database MySQL, versione 8.0, è disponibile per l'installazione dai repository CentOS 8 predefiniti.
MySQL 8.0 ha introdotto molte nuove funzionalità e modifiche che hanno reso alcune applicazioni incompatibili con questa versione. Prima di scegliere la versione di MySQL da installare, consulta la documentazione dell'applicazione che intendi distribuire sul tuo server CentOS.
CentOS 8 fornisce anche MariaDB 10.3, che è un "drop-in replacement" per MySQL 5.7, con alcune limitazioni. Se la tua applicazione non è compatibile con MySQL 8.0, installa MariaDB 10.3.
In questo tutorial, ti mostreremo come installare e proteggere MySQL 8.0 su sistemi CentOS 8.
Installazione di MySQL 8.0 su CentOS 8 #
Installa il server MySQL 8.0 utilizzando il gestore di pacchetti CentOS come root o utente con privilegi sudo:
sudo dnf install @mysql
Il @mysql
installa MySQL e tutte le dipendenze.
Una volta completata l'installazione, avvia il servizio MySQL e abilitalo all'avvio automatico all'avvio eseguendo il comando seguente:
sudo systemctl enable --now mysqld
Per verificare se il server MySQL è in esecuzione, digita:
sudo systemctl status mysqld
● mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2019-10-17 22:09:39 UTC; 15s ago
...
Messa in sicurezza #
Esegui mysql_secure_installation
script che esegue diverse operazioni relative alla sicurezza e imposta la password di root di MySQL:
sudo mysql_secure_installation
Ti verrà chiesto di configurare il VALIDATE PASSWORD PLUGIN
, che viene utilizzato per testare la forza delle password degli utenti MySQL e migliorare la sicurezza. Esistono tre livelli di criteri di convalida delle password, basso, medio e forte. Premi ENTER
se non desideri impostare il plug-in di convalida della password.
Al prompt successivo, ti verrà chiesto di impostare una password per l'utente root di MySQL. Dopo averlo fatto, lo script ti chiederà anche di rimuovere l'utente anonimo, limitare l'accesso dell'utente root al computer locale e rimuovere il database di test. Dovresti rispondere "Y" (sì) a tutte le domande.
Per interagire con il server MySQL dalla riga di comando, utilizzare l'utilità client MySQL, che viene installata come dipendenza. Verifica l'accesso come root digitando:
mysql -u root -p
Inserisci la password di root quando richiesto e ti verrà presentata la shell MySQL come mostrato di seguito:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.17 Source distribution
Questo è tutto! Hai installato e protetto MySQL 8.0 sul tuo server CentOS e sei pronto per usarlo.
Metodo di autenticazione #
Il server MySQL 8.0 incluso nei repository CentOS 8 è impostato per utilizzare il vecchio mysql_native_password
plug-in di autenticazione perché alcuni strumenti client e librerie in CentOS 8 non sono compatibili con caching_sha2_password
metodo, che è impostato come predefinito nella versione upstream di MySQL 8.0.
mysql_native_password
il metodo dovrebbe andare bene per la maggior parte delle configurazioni. Tuttavia, se desideri modificare il plug-in di autenticazione predefinito in caching_sha2_password
che è più veloce e offre una maggiore sicurezza, apri il seguente file di configurazione:
sudo vim /etc/my.cnf.d/mysql-default-authentication-plugin.cnf
Modifica il valore di default_authentication_plugin
a caching_sha2_password
:
[mysqld]
default_authentication_plugin=caching_sha2_password
Chiudi e salva il file e riavvia il server MySQL per rendere effettive le modifiche:
sudo systemctl restart mysqld