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.
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.
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.
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 :
OutputSecuring 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 :
OutputPlease 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 :
OutputEstimated 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.
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 :
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.
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.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!