Come installare MySQL su Ubuntu
MySQL è uno dei servizi di Database Management System (DBMS) relazionale più diffusi al mondo. Permette di archiviare, organizzare e gestire i dati in modo sicuro e affidabile, rappresentando la spina dorsale di molte applicazioni web e aziendali.
In questa guida, ti mostreremo passo dopo passo come installare, configurare e mettere in sicurezza MySQL su un server Ubuntu, assicurando che sia pronto per i tuoi progetti.
Installare MySQL
Prima di iniziare l’installazione, è consigliabile verificare che la porta 3306, utilizzata da MySQL, sia aperta. In genere, nei server appena acquistati le impostazioni di base permettono la connessione senza problemi, ma se riscontri errori di rete o firewall, controllare che questa porta sia accessibile.
Accedi al tuo server Ubuntu tramite terminale con un utente con privilegi sudo. È necessario aggiornare i pacchetti prima di installare qualsiasi software:
sudo apt update
Ora possiamo procedere con l'installazione effettiva:
sudo apt install mysql-server
Verificare Lo Stato MySQL
Terminata l'installazione, controlliamo lo stato del servizio:
sudo service mysql status
Questo comando, dovrebbe generare una risposta simile a questa, se non ci sono stati problemi:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; preset: enabled)
Active: active (running) since Fri 2025-08-22 14:21:36 CEST; 1 month 11 days ago
Process: 575 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Process: 647 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid (code=exited, status=0/SUCCESS)
Main PID: 748 (mysqld)
Tasks: 247 (limit: 38457)
Memory: 845.0M
CPU: 9h 13min 55.095s
CGroup: /system.slice/mysql.service
└─748 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Aug 22 14:21:34 systemd[1]: Starting mysql.service - MySQL Community Server...
Aug 22 14:21:36 systemd[1]: Started mysql.service - MySQL Community Server.
Mentre, in caso contrario, se sono emersi degli errori o per qualche altro motivo il servizio MySQL non si è avviato, la risposta sarà simile a:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2023-10-13 10:35:40 UTC; 10s ago
Process: 1300 ExecStartPre=/usr/share/mysql/mysql-pre-systemd (code=exited, status=0/SUCCESS)
Process: 1320 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
Main PID: 1320 (code=exited, status=1/FAILURE)
...
Oct 13 10:35:39 hostname systemd[1]: Starting MySQL Community Server...
Oct 13 10:35:40 hostname mysqld[1320]: 2023-10-13T10:35:40.707011Z 0 [ERROR] [MY-010262] [Server] Can't start server: Bind on TCP/IP port: Address already in use
Oct 13 10:35:40 hostname mysqld[1320]: 2023-10-13T10:35:40.707011Z 0 [ERROR] [MY-010258] [Server] Do you already have another mysqld server running on port: 3306 ?
Oct 13 10:35:40 hostname systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
Oct 13 10:35:40 hostname systemd[1]: mysql.service: Failed with result 'exit-code'.
Oct 13 10:35:40 hostname systemd[1]: Failed to start MySQL Community Server.
Come si può leggere dai logs, lo stato del servizio, a fianco alla stringa "Active:", è failed.
Se invece il servizio è solamente non attivo, eseguire questo comando per avviarlo manualmente:
sudo service mysql restart
Come si può leggere dai logs, lo stato del servizio, a fianco alla stringa "Active:", è failed.
Configurazione MySQL
Terminata la fase di installazione, si può procedere con la prossima fase, ovvero quella più importante e delicata. Questo perché includerà anche configurazioni riguardanti la sicurezza, la creazione di utenti, e i loro relativi permessi.
Alcune delle impostazioni possono venire modificate anche attraverso i file, accessibili attraverso il percorso /etc/mysql, dove si trovano le impostazioni base, come i file di log, il numero della porta, etc.
Per quanto riguarda la creazione degli utenti e i loro relativi permessi, bisognerà tornare nel terminale del server.
Il servizio MySQL fornisce di base un utente "root" con il quale poter configurare e gestire gli altri utenti. Si può accedere con il comando, senza l'ausilio di password:
sudo mysql
Ora, impostiamo una password per l'utente root, sostituendo il campo tra apostrofi "password" con la password desiderata:
CREATE USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
Prima di iniziare a modificare elementi o creare utenti, riteniamo fondamentale l'esecuzione di uno script di sicurezza, quindi uscire dal servizio MySQL, scrivendo semplicemente:
exit
In modo da poter eseguire il comando:
sudo mysql_secure_installation
Adesso è possibile tornare dentro MySQL
Questo avvierà una serie di pratiche per abilitare o disabilitare vari controlli relativi alla sicurezza, in base alle proprie preferenze rispondere alla domande della guida, queste sono le risposte che consigliamo di fornire:
Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Aggiungi qui il testo dell’intestazione
Creazione Utente MySQL
Dopo aver configurato root, puoi creare utenti dedicati per i tuoi progetti, assegnando loro privilegi specifici. Questo approccio migliora la sicurezza rispetto all’uso diretto dell’account root.
Accedi di nuovo alla console MySQL:
sudo mysql
Crea un nuovo utente (sostituisci username e password con i valori desiderati):
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
Assegna i privilegi necessari, ad esempio l’accesso completo a un database chiamato nomedatabase:
GRANT ALL PRIVILEGES ON nomedatabase.* TO 'username'@'localhost';
Infine, aggiorna i permessi:
FLUSH PRIVILEGES;