Come Installare MySQL su Ubuntu 26.04 LTS Guida Completa
In questa guida completa passo passo, vediamo come installare MySQL 8.4 su Ubuntu 26.04 LTS (Resolute Raccoon) tramite apt, il gestore di pacchetti predefinito delle distribuzioni basate su Debian.
Sia che tu sia uno sviluppatore, un CTO o una Web Agency, configurare correttamente un database relazionale (DBMS) è un passaggio critico. MySQL rappresenta le fondamenta per gli stack LAMP (Linux, Apache, MySQL, PHP) e LEMP (NginX), necessari per far scalare in sicurezza web app aziendali, CMS complessi ed e-Commerce ad alto traffico.
La crescita del tuo business è rallentata da colli di bottiglia nel database o da architetture fragili e complesse? Ottimizzare le query non basta se l'infrastruttura sottostante non è solida. Progettiamo infrastrutture IT altamente scalabili: scopri come la nostra Assistenza Ubuntu Server per infrastrutture ad alte prestazioni e ottimizzazione DB può risolvere i problemi di latenza e garantire la massima stabilità in produzione.
Highlight della Guida
- Aggiornamento e Installazione: Utilizzo sicuro di
aptper pacchetti ufficiali. - Sicurezza (Hardening): Configurazione di
mysql_secure_installationper ambienti di produzione. - Accesso Remoto: Setup sicuro tramite Tunnel SSH senza esporre la porta 3306 al web.
- Tool di Gestione: Connessione avanzata tramite MySQL Workbench.
Installare MySQL su Ubuntu 26.04
Se stai avviando un nuovo progetto e cerchi un Cloud Provider europeo affidabile per ospitare il tuo server Ubuntu con performance garantite, ti consigliamo di valutare le VPS e le soluzioni cloud del nostro partner Ionos.
Come primo passaggio per l'installazione di MySQL in Ubuntu 26.04, aggiorniamo la lista dei pacchetti disponibili nei repository ufficiali (assicurandoci di avere le patch di sicurezza più recenti) con:
sudo apt updateProcediamo a installare MySQL server su Ubuntu con questo comando:
sudo apt install mysql-serverUna volta terminata l'installazione, il demone del server dovrebbe avviarsi in automatico. Controlliamo se il processo è attivo e in esecuzione:
sudo service mysql status● mysql.service - MySQL Community Server
Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-04-27 07:33:33 UTC; 2s ago
Invocation: 345f00cd028f4e6fb70288ee2b82f14e
Process: 2059 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 2069 (mysqld)
Status: "Server is operational"
Tasks: 35 (limit: 3828)
Memory: 478M (peak: 478.1M)
CPU: 761ms
CGroup: /system.slice/mysql.service
└─2069 /usr/sbin/mysqldNel caso non sia attivo, possiamo riavviare MySQL e ripetere il controllo:
sudo service mysql restartOra verifichiamo la porta default di MySQL, la 3306 TCP, che a questo punto dovrebbe essere in ascolto. Per farlo utilizziamo i tool di rete:
sudo apt install net-tools
sudo netstat -tnplu | grep 3306Il comando deve restituirci l'output seguente, confermando che la porta 3306 è in ascolto (LISTEN) strettamente in locale (127.0.0.1), una pratica essenziale per la sicurezza:
tcp 0 0 127.0.0.1:33060 0.0.0.0:* LISTEN 2191/mysqld
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2191/mysqld Configurare e Mettere in Sicurezza MySQL (Hardening)
Il server è attivo, ma per una nuova installazione le configurazioni applicate sono quelle di base e la sicurezza è minima. In scenari Enterprise o in ottica di hardening dell'infrastruttura, è altamente consigliato eseguire lo script di sicurezza integrato per impostare le policy delle password e rimuovere le vulnerabilità note (come gli utenti anonimi).
sudo mysql_secure_installationLo script ci guiderà nella configurazione. Come prima cosa abilitiamo il componente VALIDATE PASSWORD e impostiamo un livello di sicurezza forte (2 = STRONG) per prevenire attacchi brute-force o a dizionario:
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: YThere are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2Lo script chiederà di rimuovere gli utenti anonimi. Rispondiamo in modo affermativo per incrementare la sicurezza in ambiente di produzione:
Skipping password set for root as authentication with auth_socket is used by default.
If you would like to use password authentication instead, this can be done with the "ALTER_USER" command.
See https://dev.mysql.com/doc/refman/8.0/en/alter-user.html#alter-user-password-management for more information.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : YInibiamo il login remoto all'utente root. La connessione dovrà avvenire tramite socket UNIX solamente dalla macchina locale, prevenendo attacchi dall'esterno:
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : YRimuoviamo il database di test (spesso utilizzato come vettore per vulnerability scanning):
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : YInfine, effettuiamo il flush (reload) delle tabelle dei privilegi per applicare immediatamente tutte le regole di sicurezza impostate:
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : YSe vuoi approfondire queste configurazioni, puoi trovare qui la documentazione ufficiale di MySQL
Accesso a MySQL da console e Password di Root
L'installazione è terminata. Possiamo accedere con l'utente root direttamente dalla CLI (Command Line Interface) del nostro server Ubuntu:
sudo mysql -u rootVerifichiamo che tutto funzioni visualizzando i database di sistema generati dall'installazione:
SHOW DATABASES;+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)Sei riuscito a installare MySQL server su Ubuntu 26.04! Ora puoi procedere a collegare le tue web app (ad esempio, completando la configurazione dello stack LAMP).
Impostare o cambiare la password di root in MySQL
Di default in Ubuntu, l'utente root usa l'autenticazione via `auth_socket` (non richiede password ma necessita dei privilegi sudo di sistema). Se la tua architettura richiede un login standard basato su password (ad esempio per accedere tramite un tool esterno), usa questa query, avendo cura di generare una password crittograficamente complessa:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'secure_password';
FLUSH PRIVILEGES;Hai il timore paralizzante di subire interruzioni del servizio e perdita di dati transazionali preziosi? Affidati alla nostra esperienza per la gestione di architetture in High Availability e migrazioni garantite "Zero-Downtime".
Accedere a MySQL remoto tramite Tunnel SSH
Esporre la porta 3306 pubblicamente su internet è considerata una gravissima vulnerabilità di sicurezza. Per accedere a un server MySQL remoto, la best practice in ambito SysAdmin è creare un Tunnel SSH.
Questo inoltra il traffico in modo cifrato dalla porta 3306 del server remoto alla porta 33006 della tua macchina di sviluppo locale:
ssh user@SERVER-IP -L 33006:localhost:3306Con il tunnel attivo, potrai connettere il tuo client MySQL locale al server di produzione remoto, interrogando semplicemente il tuo localhost:
mysql -h 127.0.0.1 -P 33006 -u root -pAccedere con MySQL Workbench
Se preferisci un approccio visivo, MySQL Workbench è lo standard di settore per i DBA (Database Administrator) e gli sviluppatori DevOps. Permette di creare query complesse, generare diagrammi EER e gestire gli indici con facilità, integrando nativamente la funzione di Tunneling SSH appena descritta.
- Apri MySQL Workbench e crea una Nuova Connessione.
- Nel campo Connection Method, seleziona Standard TCP/IP over SSH.
- Compila le Configurazioni SSH:
- SSH Hostname: Indirizzo IP del server Ubuntu:22
- SSH Username: Il tuo utente Linux
- SSH Password: La tua chiave privata SSH (consigliata) o password.
- Compila le Configurazioni di MySQL:
- MySQL Hostname: localhost (oppure 127.0.0.1)
- MySQL Server Port: 3306
- Username: root o l'utente DB specifico creato
- Password: Clicca su "Store in Vault" per salvare la password del DB.
- Clicca su Test Connection per validare la comunicazione sicura.
FAQ: Domande Frequenti sull'installazione di MySQL su Ubuntu
Dove si trova il file di configurazione my.cnf in Ubuntu 26.04?
Il file di configurazione principale di MySQL su distribuzioni Debian/Ubuntu si trova solitamente in /etc/mysql/mysql.conf.d/mysqld.cnf. Qualsiasi modifica applicata a questo file richiederà il riavvio del servizio demone (sudo systemctl restart mysql) per avere effetto.
Come disinstallare completamente MySQL da Ubuntu?
Se hai bisogno di rimuovere il server e purgare tutti i dati di configurazione, esegui: sudo apt purge mysql-server* mysql-client* mysql-common* dopodiché rimuovi la directory dei dati con sudo rm -rf /var/lib/mysql/ (attenzione: i dati andranno persi in modo irreversibile).
Qual è la password di root di default in MySQL?
Nelle versioni recenti installate via apt su Ubuntu, l'account di root del database non ha una password tradizionale. Utilizza il plugin auth_socket, permettendo al superutente (root) di sistema di loggarsi al database tramite il comando sudo mysql senza prompt di password.