Come Installare MySQL 8.4 in Debian 12 - Guida Completa
In questa guida vedremo come installare MySQL 8.4 in Debian 12 Bookworm con apt, il gestore di pacchetti di default
È molto comune nei nostri interventi di Assistenza Linux, essendo la base per gli stack LAMP (Linux, Apache, MySQL, PHP), LEMP (NginX) e svariati altri, necessari per Web App, CMS ed e-commerce
Configurazione Repository Ufficiale MySQL
Come primo passaggio, per installare MySQL 8.4 in Debian 12 Bookworm, scarichiamo il pacchetto di configurazione del repository ufficiale di MySQL
sudo apt update && sudo apt install wget
sudo wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb
Installiamo il pacchetto scaricato
sudo apt install ./mysql-apt-config_0.8.32-1_all.deb
Durante la configurazione possiamo selezionare la versione desiderata, visualizzando una di queste schermate
│ Which MySQL product do you wish to configure? │
│ │
│ MySQL Server & Cluster (Currently selected: mysql-8.4-lts) │
│ MySQL Connectors (Currently selected: Enabled) │
Configuring mysql-apt-config
----------------------------
The MySQL APT Repository features MySQL Server along with a variety of components. You may select the desired
products to install and update from the official MySQL Repository, and also select the associated version series.
Select "Ok" to save the configuration, and then execute "apt update" to load the selected package list. This
configuration can be updated later, depending on your needs.
1. MySQL Server & Cluster (Currently selected: mysql-8.4-lts) 3. Ok
2. MySQL Connectors (Currently selected: Enabled)
Which MySQL product do you wish to configure? 3
Se preferisci MySQL 8.0 modifica la selezione a mysql-8.0
e segui invece la nostra guida "Installare MySQL 8.0 in Debian 12 Bookworm"
Installare MySQL 8.4 in Debian 12
Aggiorniamo la lista dei pacchetti disponibili
sudo apt update
Noteremo delle nuove righe contenenti il nuovo repository MySQL 8.4 per Debian 12 Bookworm
Get:5 http://repo.mysql.com/apt/debian bookworm/mysql-8.4-lts Sources [951 B]
Get:6 http://repo.mysql.com/apt/debian bookworm/mysql-apt-config amd64 Packages [566 B]
Get:7 http://repo.mysql.com/apt/debian bookworm/mysql-8.4-lts amd64 Packages [16.9 kB]
Get:8 http://repo.mysql.com/apt/debian bookworm/mysql-tools amd64 Packages [4129 B]
Procediamo a installare MySQL con questo comando
sudo apt install mysql-server
Il processo ci richiederà se inserire una password, in questo caso ho lasciato vuoto, così l'autenticazione avverrà tramite Socket
, solamente in locale. La configureremo in seguito
Controllo stato e riavvio MySQL
Siamo riusciti a Installare MySQL 8.4 in Debian 12 Bookworm. Il server dovrebbe essere già funzionante, controlliamo se il processo è attivo
sudo service mysql status
Nel caso non sia attivo possiamo riavviare MySQL e ripetere il controllo
sudo service mysql restart
* Stopping MySQL database server mysqld [ OK ] * Starting MySQL database server mysqld [ OK ]
Controlliamo la porta default di MySQL, la 3306 TCP, che a questo punto dovrebbe essere in ascolto
sudo apt install net-tools
sudo netstat -tnplu |grep 3306
Il comando deve restituirci l'output seguente, mostrando la porta 3306 in ascolto in locale
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
tcp6 0 0 :::33060 :::* LISTEN -
Configurare MySQL 8.4
Il server è attivo, per una nuova installazione le configurazioni utilizzate sono quelle di default, la sicurezza è scarsa, a questo punto è consigliato eseguire lo script di configurazione di MySQL per settare le autenticazioni e rimuovere gli accessi anonimi
sudo mysql_secure_installation
Lo script ci guiderà nella configurazione delle opzioni di sicurezza del server
Come prima cosa abilitiamo il controllo delle password per gli utenti, e selezioniamo le password forti, con ricerca a dizionario di password comuni
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: Y
There 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: 2
Please set the password for root here.
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.4/en/alter-user.html#alter-user-password-management for more information.
Rimuoviamo gli utenti anonimi, per aumentare la sicurezza
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) : Y
Configuriamo autenticazione locale dell'utente root
, che avverrà tramite socket, solamente sulla macchina locale
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) : Y
Rimuoviamo i database di test
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) : Y
Effettuiamo il reload delle tabelle dei privilegi, in modo da applicare le nostre modifiche immediatamente.
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) :
Accesso a MySQL da console
Abbiamo finito di Installare MySQL 8.4 in Debian 12 Bookworm. Possiamo accedere con l'utente root
dalla console del nostro server, e ad esempio listare i database presenti
sudo mysql -u root
Collegandosi al database, da MySQL 8.4 è possibile che si visualizzi un errore, dovuto alla mancanza di un plugin:
ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded
MySQL 8.4 e superiori implementano
mysql_native_password
, se visualizzi questo errore, segui la nostra guida per abilitare il plugin di autenticazione mysql_native_password
Effettuato il a MySQL listiamo i database presenti
show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
L'output ci indica i database presenti, siamo riusciti a installare MySQL in Debian 12 Bookworm, possiamo utilizzare con la solita sintassi il nostro MySQL, connettere ne nostre Web App e CMS
Password utente root di MySQL
Per accedere da remoto sarà necessario settare la password di root
di MySQL. Possiamo utilizzare questo comando, ma consigliamo di utilizzare una password "forte", con numeri, maiuscole e minuscole e caratteri speciali.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'LA_MIA_PASSWORD';
Accedere a MySQL remoto
Per accedere a un MySQL remoto è consigliato utilizzare un tunnel SSH ridirigendo la porta remota 3306
del nostro server, che ascolta solamente in localhost
, sulla nostra porta 33006
locale
ssh root@IP-o-DNS -L 33006:localhost:3306
Grazie al tunnel potremmo connetterci direttamente alla nostra porta 33006 in localhost
con le credenziali di root
create prima
Accedere con MySQL Workbench
MySQL Workbench è un ottimo strumento per DBA MySQL e Operation, permette di creare DB, gestire la configurazione del server, amministrare gli utenti, effettuare backup e molto altro, e incorpora già il tunnel SSH descritto sopra
- Creiamo una nuova connessione
- Selezioniamo "Standard TCP/IP over SSH"
- Inseriamo le configurazioni di SSH per il nostro server di
- SSH Host name
- SSH User name
- Password o chiave SSH
- Le configurazioni del Database MySQL
- Host name
- Server Port
- Username
- Password
- Testiamo la connessione
MySQL Workbench