Correction - MySQL ERREUR 1819 (HY000) : Votre mot de passe ne satisfait pas aux exigences actuelles de la politique
Comme vous l'avez peut-être remarqué, il vous sera demandé d'activer le composant VALIDATE PASSWORD lors de la configuration du mot de passe pour l'utilisateur root de MySQL. Si activé, le composant Validate Password vérifiera automatiquement la robustesse du mot de passe fourni et obligera les utilisateurs à ne définir que des mots de passe suffisamment sécurisés. Si vous fournissez un mot de passe faible, vous rencontrerez une erreur comme celle-ci - ERROR 1819 (HY000) : Votre mot de passe ne satisfait pas aux exigences de la politique actuelle.
Techniquement parlant, ce n'est en fait pas une erreur. Il s'agit d'un mécanisme de sécurité intégré qui oblige les utilisateurs à fournir uniquement des mots de passe forts basés sur les exigences actuelles de la politique de mot de passe.
Laissez-moi vous montrer un exemple. Je me connecte au serveur MySQL en tant qu'utilisateur root en utilisant la commande :
$ mysql -u root -pCréer un utilisateur de base de données avec un mot de passe faible :
mysql> create user 'ostechnix'@'localhost' identified by 'mypassword';Et je rencontre l'erreur suivante :
ERROR 1819 (HY000): Your password does not satisfy the current policy requirementsVous voyez ? Le composant Validate Password ne me permet pas de créer un utilisateur avec un mot de passe faible (c'est-à-dire mypassword dans ce cas).
Vous continuerez à recevoir cette erreur jusqu'à ce que le mot de passe réponde aux exigences de la politique de mot de passe en vigueur ou que vous désactiviez le composant Valider le mot de passe. Nous verrons comment le faire dans la section suivante.
Correction - MySQL ERREUR 1819 (HY000) : Votre mot de passe ne satisfait pas aux exigences actuelles de la politique
Il existe trois niveaux de politique de validation des mots de passe appliqués lorsque le plugin Validate Password est activé :
- FAIBLE Longueur >= 8 caractères.
- MOYEN Longueur >= 8, numérique, mélange de majuscules et minuscules, et caractères spéciaux.
- FORTE Longueur >= 8, numérique, mélange de majuscules et minuscules, caractères spéciaux et fichier de dictionnaire.
En fonction de ces niveaux de politique, vous devez définir un mot de passe approprié. Par exemple, si la politique de validation des mots de passe est définie sur Moyen, vous devez définir un mot de passe comportant au moins 8 caractères incluant un chiffre, des lettres minuscules, des lettres majuscules et des caractères spéciaux.
Tout d'abord, nous devons trouver le niveau actuel de la politique de mot de passe. Pour ce faire, exécutez la commande suivante pour afficher les variables système du plugin de validation de mot de passe :
mysql> SHOW VARIABLES LIKE 'validate_password%';Exemple de sortie :
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set (0.09 sec)Comme vous pouvez le voir, le niveau de mot de passe actuellement appliqué est Moyen. Donc notre mot de passe doit comporter 8 caractères avec un chiffre, des majuscules et minuscules et des caractères spéciaux.
Je vais définir ce mot de passe - Password123#@! en utilisant la commande :
mysql> create user 'ostechnix'@'localhost' identified by 'Password123#@!';
Query OK, 0 rows affected (0.36 sec)Tu vois ? Ça fonctionne maintenant ! Donc, pour corriger l'erreur « ERROR 1819 (HY000)... », tu dois saisir un mot de passe conformément à la politique actuelle de validation des mots de passe.
Modifier la politique de validation des mots de passe dans MySQL
Vous pouvez également résoudre l'« ERROR 1819 (HY000)... » en configurant une politique de mot de passe moins stricte.
Pour ce faire, exécutez la commande suivante depuis l'invite MySQL :
mysql> SET GLOBAL validate_password.policy = 0;Ou,
mysql> SET GLOBAL validate_password.policy=LOW;Vérifiez ensuite si la politique de validation des mots de passe a été modifiée pour être faible :
mysql> SHOW VARIABLES LIKE 'validate_password%';Exemple de sortie :
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | LOW |
| validate_password.special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)Vous pouvez maintenant créer un utilisateur avec un mot de passe faible comme ci-dessous :
mysql> create user 'senthil'@'localhost' identified by 'password';Pour revenir à la politique de niveau MOYEN, exécutez simplement cette commande depuis l'invite mysql :
mysql> SET GLOBAL validate_password.policy=MEDIUM;Si la politique de mot de passe ne change pas, quittez l'invite mysql et redémarrez le service mysql depuis votre fenêtre Terminal :
$ sudo systemctl restart mysqlMaintenant, cela devrait fonctionner.
Attention : L'un de nos lecteurs a signalé qu'il y a une faute de frappe dans la commande suivante :
mysql> SET GLOBAL validate_password.policy=LOW;Cela devrait être :
mysql> SET GLOBAL validate_password_policy=LOW;Remarquez le soulignement dans la commande ci-dessus. Comme j'ai supprimé l'installation, je n'ai aucun moyen de vérifier cette commande. Mais je suppose que la commande a été modifiée dans les versions plus récentes de MySQL.
Désactiver la politique de validation des mots de passe
Si vous aimez créer des utilisateurs avec un mot de passe faible, désactivez simplement le composant Validate Password complètement et réactivez-le après avoir créé les utilisateurs.
Connectez-vous au serveur MySQL :
$ mysql -u root -pPour désactiver temporairement le composant Valider le mot de passe, exécutez la commande suivante depuis l'invite MySQL :
mysql> UNINSTALL COMPONENT "file://component_validate_password";Créez les utilisateurs avec le mot de passe de votre choix :
mysql> create user 'kumar'@'localhost' identified by '123456';Enfin, activez le composant Valider le mot de passe :
mysql> INSTALL COMPONENT "file://component_validate_password";Je ne recommande personnellement pas de changer la politique pour un niveau inférieur ou de désactiver la politique de mot de passe. Qu'il s'agisse d'un utilisateur de base de données ou d'un utilisateur normal, utilisez toujours un mot de passe fort de plus de 8 caractères incluant un chiffre, des majuscules et minuscules, et des caractères spéciaux.
Conclusion
Dans ce guide, nous avons appris à propos d'une des erreurs courantes de MySQL - ERROR 1819 (HY000) : votre mot de passe ne satisfait pas les exigences de la politique actuelle et comment la corriger sous Linux. Nous avons également appris comment désactiver la politique de mot de passe pour permettre des mots de passe faibles dans certains cas. Personnellement, je vous recommande d'utiliser un mot de passe fort.
Lecture connexe :
- Installer Apache, MySQL, PHP (Pile LAMP) sur Ubuntu 20.04 LTS
- Installer Nginx, MySQL, PHP (Stack LEMP) sur Ubuntu 20.04 LTS



