Come installare MySQL su CentOS 7

Introduzione

MySQL è un sistema di gestione di database open source, comunemente installato come parte dello stack LEMP (Linux, Nginx, MySQL/MariaDB, PHP/Python/Perl) popolare. Utilizza un database relazionale e SQL (Structured Query Language) per gestire i suoi dati.

CentOS 7 preferisce MariaDB, un fork di MySQL gestito dagli sviluppatori originali di MySQL e progettato come sostituto di MySQL. Se esegui yum install mysql su CentOS 7, è MariaDB che viene installato al posto di MySQL. Se ti stai chiedendo la differenza tra MySQL e MariaDB, MariaDB generalmente funzionerà senza problemi al posto di MySQL, quindi a meno che tu non abbia un caso d’uso specifico per MySQL, consulta la guida Come installare MariaDB su CentOS 7.

In questo tutorial verrà spiegato come installare MySQL versione 8 su un server CentOS 7.

Prerequisiti

Per seguire questo tutorial, avrai bisogno di:

  • A CentOS 7 with a non-root user with sudo privileges. You can learn more about how to set up a user with these privileges in the Initial Server Setup with CentOS 7 guide.

Passaggio 1 — Installazione di MySQL

Come già menzionato nell’introduzione, il comando Yum per installare MySQL in realtà installa MariaDB. Per installare MySQL, dovremo visitare il repository Yum della comunità MySQL che fornisce pacchetti per MySQL.

In un browser web, visita:

https://dev.mysql.com/downloads/repo/yum/

Nota che i link di download prominenti non conducono direttamente ai file. Invece, portano a una pagina successiva in cui ti viene chiesto di accedere o registrarti per un account. Se non vuoi creare un account, puoi individuare il testo “No, grazie, inizia il mio download”, quindi fare clic con il pulsante destro del mouse e copiare la posizione del link, oppure puoi modificare il numero di versione nei comandi sottostanti.

Individua la versione desiderata e aggiornala se necessario nel link sottostante:

  1. curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

Una volta che il file rpm è stato salvato, verificheremo l’integrità del download eseguendo md5sum e confrontandolo con il valore MD5 corrispondente elencato sul sito:

  1. md5sum mysql80-community-release-el7-5.noarch.rpm
Output
e2bd920ba15cd3d651c1547661c60c7c mysql80-community-release-el7-5.noarch.rpm

Confronta questo output con il valore MD5 appropriato sul sito:

Ora che abbiamo verificato che il file non sia stato corrotto o modificato, installeremo il pacchetto:

  1. sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm

Questo aggiunge due nuovi repository yum MySQL e ora possiamo usarli per installare il server MySQL:

  1. sudo yum install mysql-server

Premi y per confermare che desideri procedere. Poiché abbiamo appena aggiunto il pacchetto, verrai anche invitato ad accettare la sua chiave GPG. Premi y per scaricarla e completare l’installazione.

Passaggio 2 — Avvio di MySQL

Inizieremo il demone con il seguente comando:

  1. sudo systemctl start mysqld

systemctl non visualizza l’esito di tutti i comandi di gestione dei servizi, quindi per essere sicuri di aver avuto successo, useremo il seguente comando:

  1. sudo systemctl status mysqld

Se MySQL è stato avviato con successo, l’output dovrebbe contenere Attivo: attivo (in esecuzione) e l’ultima riga dovrebbe assomigliare a qualcosa del genere:

  1. Dec 01 19:02:20 centos-512mb-sfo2-02 systemd[1]: Started MySQL Server.

Nota: MySQL è automaticamente abilitato all’avvio al boot quando viene installato. Puoi modificare tale comportamento predefinito con sudo systemctl disable mysqld

Durante il processo di installazione, viene generata una password temporanea per l’utente root di MySQL. Trovala nel file mysqld.log con questo comando:

  1. sudo grep 'temporary password' /var/log/mysqld.log
Output
2022-01-24T19:54:46.313728Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: mqRfBU_3Xk>r

Fai nota della password, di cui avrai bisogno nel prossimo passaggio per proteggere l’installazione e dove sarai costretto a cambiarla. La policy predefinita della password richiede 12 caratteri, con almeno una lettera maiuscola, una lettera minuscola, un numero e un carattere speciale.

Passaggio 3 — Configurazione di MySQL

MySQL include uno script di sicurezza per modificare alcune delle opzioni predefinite meno sicure per cose come l’accesso remoto di root e gli utenti di esempio.

Usa questo comando per eseguire lo script di sicurezza.

  1. sudo mysql_secure_installation

Ti verrà chiesto la password di root predefinita. Appena la inserisci, ti verrà richiesto di cambiarla.

Output
The existing password for the user account root has expired. Please set a new password. New password:

Inserisci una nuova password di 12 caratteri che contenga almeno una lettera maiuscola, una lettera minuscola, un numero e un carattere speciale. Reinseriscila quando richiesto.

Riceverai un feedback sulla robustezza della tua nuova password e sarai immediatamente invitato a cambiarla di nuovo. Poiché l’hai appena fatto, puoi tranquillamente dire No:

Output
Estimated strength of the password: 100 Change the password for root ? (Press y|Y for Yes, any other key for No) :

Dopo aver rifiutato l’invito a cambiare di nuovo la password, premiamo e quindi INVIO a tutte le domande successive per rimuovere gli utenti anonimi, impedire l’accesso remoto di root, rimuovere il database di test e l’accesso ad esso e ricaricare le tabelle dei privilegi.

Ora che abbiamo protetto l’installazione, proviamola.

Passaggio 4 — Test di MySQL

Possiamo verificare la nostra installazione e ottenere informazioni su di essa collegandoci con lo strumento mysqladmin, un client che consente di eseguire comandi amministrativi. Utilizza il seguente comando per connetterti a MySQL come root (-u root), chiedi una password (-p), e restituisci la versione.

  1. mysqladmin -u root -p version

Dovresti vedere un output simile a questo:

Output
mysqladmin  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version		8.0.28
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			3 min 2 sec

Threads: 2  Questions: 14  Slow queries: 0  Opens: 133  Flush tables: 3  Open tables: 49  Queries per second avg: 0.076

Questo indica che l’installazione è avvenuta con successo.

Conclusione

In questo tutorial, abbiamo installato e protetto MySQL su un server CentOS 7. Per saperne di più sull’uso di MySQL, questa guida su come imparare di più sui comandi MySQL può essere utile. Potresti anche considerare l’implementazione di alcune misure di sicurezza aggiuntive.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-centos-7