Come installare MySQL su Debian 10

25 lug 2019 4 min di lettura
Come installare MySQL su Debian 10
Indice dei contenuti

Come utente abbonato puoi utilizzare lo script per il completamento di questo tutorial con un solo semplice comando. Visita la seguente pagina: Script per Debian 10

Introduzione

MySQL è un sistema di gestione di database open source. Utilizza un database relazionale e SQL (Structured Query Language) per gestire i suoi dati.

Se il vostro intento è installare MySQL su di un server in remoto continuate a leggere, altrimenti se volete installare MySQL sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh root@IP_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh VOSTRO_UTENTE@IP_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Siete ora connessi al vostro server, siete pronti per iniziare l'installazione di MySQL.

Installare MySQL

È possibile installare MySQL utilizzando il repository ufficiale di Debian con apt.

Aggiornare la lista dei pacchetti:

sudo apt update

Installare MySQL con il comando successivo, se riscontrate un messaggio di errore come questo: Package 'mysql-server' has no installation candidate, significa che il repository contenente il pacchetto MySQL non è presente, in tal caso aggiungere il repository necessario leggendo il passaggio successivo:

sudo apt install mysql-server

Se avete riscontato il messaggio di errore, aggiungere il seguente repository:

echo "deb http://ftp.debian.org/debian unstable main contrib" > /etc/apt/sources.list.d/debian.list

Quindi aggiornare l'elenco dei pacchetti:

sudo apt update

Quindi riprovare ad installare MySQL

sudo apt install -y mysql-server

Mettere in sicurezza MySQL

sudo mysql_secure_installation

Vi verrà chiesto di inserire una password per l'utente root, che utilizzerete per accedere al server MySQL.

Inserire "y" per "si" oppure qualsiasi altra lettera per "no".

Vi verrà chiesto se si vuole testare la sicurezza della password.

Successivamente è consigliato premere "y" quindi "si".

  • Rimuovere gli utenti anonimi
  • Disabilitare il login root da remoto
  • Rimuovere il database test
  • Aggiornare le nuove regole

Modificare il metodo di autenticazione (Opzionale)

A partire dalla versione 5.7 di MySQL, l'utente root di MySQL è impostato per l'autenticazione tramite il plug-in auth_socket per impostazione di default anziché con una password.

Per utilizzare una password per connettersi a MySQL come utente root è necessario modificare il metodo di autenticazione, da auth_socket a mysql_native_password.

Poiché non è stata impostata ancora nessuna password, è possibile connettersi al server MySQL utilizzando semplicemente il comando mysql oppure sudo mysql se si è loggati come utente normale. Successivamente sarà necessario utilizzare il comando mysql -u root -p da utente root, altrimenti sudo mysql -u root -p da utente normale.

Quindi se siete loggati come utente root, scrivere nel terminale:

mysql

Altrimenti se siete loggati come utente normale con privilegi sudo:

sudo mysql

Per verificare il metodo di autenticazione associato agli account di mysql:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Dovresti ricevere un messaggio simile a questo:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *5852386AB32C5DAD5DDA4F5FED911A70DA342656 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Come potete vedere per l'utente root è impostato di default il metodo di autenticazione auth_socket.

Per utilizzare l'autenticazione con password per l'account root effettuare le seguenti modifiche:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'TUA_PASSWORD';
Attenzione:
Potresti ricevere un messaggio di output simile al seguente: Your password does not satisfy the current policy requirements. Leggi questo tutorial per risolvere il problema.

Effettuare un refresh delle tabelle:

FLUSH PRIVILEGES;

Adesso è possibile verificare il nuovo metodo di autenticazione associato all'utente root:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Dovresti ricevere un messaggio simile a questo:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *E6A3377941E640ADEDCC8907E390B06B0C863862 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *5852386AB32C5DAD5DDA4F5FED911A70DA342656 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Uscire dal prompt di MySQL:

exit;

Per effettuare nuovamente il login al server MySQL adesso sarà necessario inserire una password, quindi da terminale:

Se siete loggati come utente root, scrivere nel terminale:

mysql -u root -p

Altrimenti se siete loggati come utente normale con privilegi sudo:

sudo mysql -u root -p

Creare un nuovo utente per il server MySQL (Opzionale)

In alternativa è possibile creare un nuovo utente per il server MySQL ed assegnargli i privilegi di root:

CREATE USER 'nuovo_utente'@'localhost' IDENTIFIED BY 'nuova_password';

Dovresti ricevere un messaggio di output simile al seguente:

Query OK, 0 rows affected (0.00 sec)
Attenzione:
Potresti ricevere un messaggio di output simile al seguente: Your password does not satisfy the current policy requirements. Leggi questo tutorial per risolvere il problema.

Adesso, associare i privilegi di gestione all'utente appena creato:

GRANT ALL PRIVILEGES ON *.* TO 'nuovo_utente'@'localhost' WITH GRANT OPTION;

Uscire dal prompt di MySQL:

exit;

Comandi utili per gestire il server MySQL

Per verificare lo stato MySQL

sudo systemctl status mysql

Per fermare i processi di MySQL quindi per mettere offline il server:

sudo systemctl stop mysql

Per avviare MySQL:

sudo systemctl start mysql

Per riavviare MySQL

sudo systemctl restart mysql

L'installazione e la configurazione di MySQL server su Debian 10 terminata.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.