
MySQL est le système de gestion de bases de données relationnelles open source le plus populaire.
La dernière version du serveur de base de données MySQL, la version 8.0, peut être installée à partir des référentiels CentOS 8 par défaut.
MySQL 8.0 a introduit de nombreuses nouvelles fonctionnalités et modifications qui ont rendu certaines applications incompatibles avec cette version. Avant de choisir la version de MySQL à installer, consultez la documentation de l'application que vous allez déployer sur votre serveur CentOS.
CentOS 8 fournit également MariaDB 10.3, qui est un "remplacement instantané" pour MySQL 5.7, avec certaines limitations. Si votre application n'est pas compatible avec MySQL 8.0, installez MariaDB 10.3.
Dans ce tutoriel, nous allons vous montrer comment installer et sécuriser MySQL 8.0 sur les systèmes CentOS 8.
Installer MySQL 8.0 sur CentOS 8 #
Installez le serveur MySQL 8.0 en utilisant le gestionnaire de packages CentOS en tant que root ou utilisateur avec les privilèges sudo :
sudo dnf install @mysql
Le @mysql
module installe MySQL et toutes les dépendances.
Une fois l'installation terminée, démarrez le service MySQL et activez-le pour qu'il démarre automatiquement au démarrage en exécutant la commande suivante :
sudo systemctl enable --now mysqld
Pour vérifier si le serveur MySQL est en cours d'exécution, tapez :
sudo systemctl status mysqld
● mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2019-10-17 22:09:39 UTC; 15s ago
...
Sécuriser MySQL #
Exécutez le mysql_secure_installation
script qui effectue plusieurs opérations liées à la sécurité et définit le mot de passe root MySQL :
sudo mysql_secure_installation
Il vous sera demandé de configurer le VALIDATE PASSWORD PLUGIN
, qui est utilisé pour tester la force des mots de passe des utilisateurs MySQL et améliorer la sécurité. Il existe trois niveaux de politique de validation des mots de passe :faible, moyen et fort. Appuyez sur ENTER
si vous ne souhaitez pas configurer le plug-in de validation de mot de passe.
À l'invite suivante, il vous sera demandé de définir un mot de passe pour l'utilisateur racine MySQL. Une fois que vous avez fait cela, le script vous demandera également de supprimer l'utilisateur anonyme, de restreindre l'accès de l'utilisateur root à la machine locale et de supprimer la base de données de test. Vous devez répondre "O" (oui) à toutes les questions.
Pour interagir avec le serveur MySQL à partir de la ligne de commande, utilisez l'utilitaire client MySQL, qui est installé en tant que dépendance. Testez l'accès root en tapant :
mysql -u root -p
Entrez le mot de passe root lorsque vous y êtes invité, et le shell MySQL vous sera présenté comme indiqué ci-dessous :
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.17 Source distribution
C'est ça! Vous avez installé et sécurisé MySQL 8.0 sur votre serveur CentOS, et vous êtes prêt à l'utiliser.
Méthode d'authentification #
Le serveur MySQL 8.0 inclus dans les référentiels CentOS 8 est configuré pour utiliser l'ancien mysql_native_password
plugin d'authentification car certains outils clients et bibliothèques de CentOS 8 ne sont pas compatibles avec le caching_sha2_password
méthode, qui est définie par défaut dans la version amont de MySQL 8.0.
mysql_native_password
La méthode devrait convenir à la plupart des configurations. Cependant, si vous souhaitez modifier le plugin d'authentification par défaut en caching_sha2_password
qui est plus rapide et offre une meilleure sécurité, ouvrez le fichier de configuration suivant :
sudo vim /etc/my.cnf.d/mysql-default-authentication-plugin.cnf
Modifiez la valeur de default_authentication_plugin
à caching_sha2_password
:
[mysqld]
default_authentication_plugin=caching_sha2_password
Fermez et enregistrez le fichier, puis redémarrez le serveur MySQL pour que les modifications prennent effet :
sudo systemctl restart mysqld