Tutorial

Comment installer MySQL sur CentOS 8

MySQLDatabasesCentOS 8

Introduction

MySQL est un système de gestion de base de données open source, généralement installé dans le cadre de la populaire pile LEMP (Linux, Nginx, MySQL/MariaDB, PHP/Python/Perl). Il met en œuvre le modèle relationnel et le langage SQL (Structured Query Language) pour gérer et demander les données.

Ce tutoriel explique comment installer la version 8 de MySQL sur un serveur CentOS 8.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin d'un serveur fonctionnant sous CentOS 8. Ce serveur devra avoir un utilisateur non root avec des privilèges administratifs et un pare-feu configuré avec firewalld. Pour le mettre en place, suivez notre Guide de configuration initiale du serveur pour CentOS 8.

Étape 1 - Installation de MySQL

Sur CentOS 8, la version 8 de MySQL est disponible à partir des référentiels par défaut.

Exécutez la commande suivante pour installer le package mysql-server et un certain nombre de ses dépendances :

  • sudo dnf install mysql-server

Lorsque vous y êtes invité, appuyez sur y et ensuite sur ENTER (ENTRÉE) pour confirmer que vous souhaitez continuer :

Output
. . . Install 49 Packages Total download size: 46 M Installed size: 252 M Is this ok [y/N]: y

MySQL est ainsi installé sur votre serveur, mais il n'est pas encore opérationnel. Le package que vous venez d'installer configure MySQL pour qu'il fonctionne comme un service systemd nommé mysqld.service. Pour utiliser MySQL, vous devrez le démarrer avec la commande systemctl :

  • sudo systemctl start mysqld.service

Pour vérifier que le service fonctionne correctement, exécutez la commande suivante. Notez que pour de nombreuses commandes systemctl - y compris start et, comme indiqué ici, status - vous n'avez pas besoin d'inclure .service après le nom du service :

  • sudo systemctl status mysqld

Si MySQL a été lancé avec succès, la sortie indiquera que le service MySQL est actif :

Output
● mysqld.service - MySQL 8.0 database server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-12 14:07:41 UTC; 1min 7s ago Main PID: 15723 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 5056) Memory: 474.2M CGroup: /system.slice/mysqld.service └─15723 /usr/libexec/mysqld --basedir=/usr Mar 12 14:07:32 cent-mysql-3 systemd[1]: Starting MySQL 8.0 database server... Mar 12 14:07:32 cent-mysql-3 mysql-prepare-db-dir[15639]: Initializing MySQL database Mar 12 14:07:41 cent-mysql-3 systemd[1]: Started MySQL 8.0 database server.

Ensuite, configurez MySQL pour qu'il démarre à chaque fois que le serveur démarre avec la commande suivante :

  • sudo systemctl enable mysqld

Remarque : si vous souhaitez changer ce comportement et désactiver MySQL au démarrage, vous pouvez le faire en exécutant :

  • sudo systemctl disable mysqld

MySQL est maintenant installé, en cours d'exécution et activé sur votre serveur. Ensuite, nous allons voir comment renforcer la sécurité de votre base de données en utilisant un script shell pré-installé avec votre instance MySQL.

Étape 2 - Sécurisation de MySQL

MySQL comprend un script de sécurité qui vous permet de modifier certaines options de configuration par défaut afin d'améliorer la sécurité de MySQL.

Pour utiliser le script de sécurité, exécutez la commande suivante :

  • sudo mysql_secure_installation

Vous serez alors guidé par une série d'invites vous demandant si vous souhaitez apporter certaines modifications aux options de sécurité de votre installation MySQL. La première invite vous demandera si vous souhaitez configurer le plugin Validate Password, que vous pouvez utiliser pour tester la force de votre mot de passe MySQL.

Si vous choisissez de mettre en place le plugin Validate Password, le script vous demandera de choisir un niveau de validation du mot de passe. Le niveau le plus fort - que vous sélectionnez en entrant 2 - exigera que votre mot de passe comporte au moins huit caractères, dont un mélange de majuscules, de minuscules, de chiffres et de caractères spéciaux :

Output
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

Que vous choisissiez ou non de configurer le plugin Validate Password, l'invite suivante vous demandera de définir un mot de passe pour l'utilisateur root de MySQL. Entrez et confirmez le mot de passe sécurisé de votre choix :

Output
Please set the password for root here. New password: Re-enter new password:

Si vous avez utilisé le plugin Validate Password, vous recevrez des commentaires sur la force de votre nouveau mot de passe. Ensuite, le script vous demandera si vous voulez continuer avec le mot de passe que vous venez de saisir ou si vous voulez en saisir un nouveau. En supposant que vous êtes satisfait de la force du mot de passe que vous venez d'entrer, saisissez Y pour poursuivre le script :

Output
Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

À partir de là, vous pouvez entrer Y puis appuyer sur ENTER pour accepter les valeurs par défaut pour toutes les questions suivantes. Cela supprimera les utilisateurs anonymes et la base de données de test, désactivera les connexions root à distance, et chargera ces nouvelles règles afin que MySQL respecte immédiatement les modifications que vous avez apportées.

Vous avez ainsi installé et sécurisé MySQL sur votre serveur CentOS 8. Dans une dernière étape, nous vérifierons que la base de données est accessible et fonctionne comme prévu.

Étape 3 - Test de MySQL

Vous pouvez vérifier votre installation et obtenir des informations à son sujet en vous connectant à l'outil mysqladmin, un client qui vous permet d'exécuter des commandes administratives. Utilisez la commande suivante pour vous connecter à MySQL en tant que root (-u root), exiger un mot de passe (-p) et renvoyer la version de l'installation :

  • mysqladmin -u root -p version

Vous obtiendrez une sortie similaire à ceci :

Output
mysqladmin  Ver 8.0.17 for Linux on x86_64 (Source distribution)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

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.17
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/lib/mysql/mysql.sock
Uptime:         2 hours 52 min 37 sec

Threads: 2  Questions: 20  Slow queries: 0  Opens: 131  Flush tables: 3  Open tables: 48  Queries per second avg: 0.001

Cela indique que votre installation a réussi.

Si vous souhaitez vous connecter à MySQL et commencer à y ajouter des données, exécutez ce qui suit :

  • mysql -u root -p

Comme la précédente commande mysqladmin, cette commande comprend l'option -u, qui vous permet de spécifier en tant que quel utilisateur vous souhaitez vous connecter (root dans ce cas), et l'option -p, qui indique à la commande de vous demander le mot de passe de l'utilisateur que vous avez défini à l'étape précédente.

Après avoir saisi le mot de passe de votre utilisateur root MySQL, vous verrez apparaître l'invite MySQL :

De là, vous pouvez commencer à utiliser votre installation MySQL pour créer et charger des bases de données et lancer des requêtes.

Conclusion

En suivant ce tutoriel, vous avez installé et sécurisé MySQL sur un serveur CentOS 8. À partir de là, vous pouvez installer Nginx et PHP pour avoir une pile LEMP pleinement opérationnelle sur votre serveur.

Pour en savoir plus sur l'utilisation de MySQL, nous vous conseillons de consulter la documentation officielle.

Creative Commons License