web-dev-qa-db-fra.com

Votre mot de passe ne répond pas aux exigences actuelles de la politique

Je veux créer un nouvel utilisateur dans mysql avec la syntaxe:

create user 'demo'@'localhost' identified by 'password';

Mais c'est une erreur. "votre mot de passe ne satisfait pas aux exigences actuelles de la politique" . J'essaie plusieurs mots de passe mais cela ne fonctionne pas Alors, comment puis-je résoudre ce problème?

51
Nguyen

A cause de votre mot de passe. Vous pouvez voir password valider les mesures de configuration à l'aide de SHOW VARIABLES LIKE 'validate_password%'; dans mysql ou vous pouvez définir un niveau de stratégie de mot de passe inférieur, par exemple:

SET GLOBAL validate_password_length = 6;
SET GLOBAL validate_password_number_count = 0;

Vous pouvez regarder cette vidéo: ERREUR 1819 (HY000): votre mot de passe ne répond pas aux exigences actuelles de la politique - Mysql (Youtube)

74
Hung Nguyen

REMARQUE: cela pourrait ne pas être une solution sécurisée. Mais si vous travaillez dans un environnement de test, vous avez simplement besoin d’une solution rapide et ne vous souciez même pas des paramètres de sécurité. C'est une solution rapide.

Le même problème m’est arrivé lorsque j’ai exécuté «mysql_secure_installation» et modifié le niveau de sécurité du mot de passe en «moyen».

J'ai contourné l'erreur en exécutant ce qui suit:

mysql -h localhost -u root -p
mysql>uninstall plugin validate_password;

assurez-vous de réinstaller le plugin "validate_password" si nécessaire.

39
kennyut

Si vous ne vous souciez pas de ce que la politique de mot de passe est. Vous pouvez le définir sur LOW en émettant ci-dessous la commande mysql:

mysql> SET GLOBAL validate_password_policy=LOW;
17
singh

Après avoir exécuté la commande Sudo mysql_secure_installation.

  1. Exécutez Sudo mysql pour entrer dans l'invite mysql.
  2. Exécutez ce SELECT user,authentication_string,plugin,Host FROM mysql.user; pour vérifier que l’utilisateur racine a le plugin auth_socket.
  3. Exécutez ensuite uninstall plugin validate_password; pour supprimer les privilèges avant d’exécuter This ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';Vérifiez que mot de passe est remplacé par un mot de passe fort.

REMARQUE: consultez ce lien https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04 pour obtenir de l'aide supplémentaire

9
Leo Sammy

Pour MySQL 8 *

SET GLOBAL validate_password.policy=LOW

Lien de référence pour expliquer la politique - Cliquez ici

6
Philip

Étape 1: vérifiez votre plugin d'authentification par défaut

SHOW VARIABLES LIKE 'default_authentication_plugin';

Étape 2: Répondre aux exigences de validation de votre mot de passe

SHOW VARIABLES LIKE 'validate_password%';

Étape 3: configurer votre utilisateur avec les exigences de mot de passe correctes

CREATE USER '<your_user>'@'localhost' IDENTIFIED WITH '<your_default_auth_plugin>' BY 'password';
2
Oroki

J'ai eu le même problème et la réponse est juste en face de vous, rappelez-vous quand vous avez exécuté le script lors de l'installation de mysql comme

Sudo mysql_secure_installation

il y a quelque part vous avez choisi quel type de mot de passe voudriez-vous choisir

Il existe trois niveaux de stratégie de validation de mot de passe:

LOW Longueur> = 8 MEDIUM Longueur> = 8, caractères numériques, majuscules et caractères spéciaux FORT Longueur> = 8, numérique, majuscules, caractères spéciaux et fichier de dictionnaire

Veuillez entrer 0 = FAIBLE, 1 = MOYEN et 2 = FORT:

vous devez donner un mot de passe à la même politique

voici quelques exemples de mots de passe:
pour le type 0: abcdabcd
pour le type 1: abcd1234
pour le type 2: ancd@1234

1
Anurag Sahu

Pour les utilisateurs de Laravel rencontrant ce problème avec MySQL 8.0.x, ajoutez

'modes'=> [
             'ONLY_FULL_GROUP_BY',
             'STRICT_TRANS_TABLES',
             'NO_ZERO_IN_DATE',
             'NO_ZERO_DATE',
             'ERROR_FOR_DIVISION_BY_ZERO',
             'NO_ENGINE_SUBSTITUTION',
            ],

dans votre fichier database.php comme ci-dessous:

// database.php

    'connections' => [

        'mysql' => [
            'driver'      => 'mysql',
            'Host'        => env( 'DB_Host', '127.0.0.1' ),
            'port'        => env( 'DB_PORT', '3306' ),
            'database'    => env( 'DB_DATABASE', 'forge' ),
            'username'    => env( 'DB_USERNAME', 'forge' ),
            'password'    => env( 'DB_PASSWORD', '' ),
            'unix_socket' => env( 'DB_SOCKET', '' ),
            'charset'     => 'utf8mb4',
            'collation'   => 'utf8mb4_unicode_ci',
            'prefix'      => '',
            'strict'      => true,
            'engine'      => null,
            'modes'       => [
                'ONLY_FULL_GROUP_BY',
                'STRICT_TRANS_TABLES',
                'NO_ZERO_IN_DATE',
                'NO_ZERO_DATE',
                'ERROR_FOR_DIVISION_BY_ZERO',
                'NO_ENGINE_SUBSTITUTION',
            ],
        ],
    ],

Cela a résolu le problème pour moi.

0
Jekayode

Selon moi, définir le "validate_password_policy" à "low" ou désinstaller le "validate password plugin" n'est pas la bonne chose à faire. Vous ne devez jamais compromettre la sécurité de votre base de données (à moins que vous ne vous en souciiez pas). Je me demande pourquoi les gens suggèrent même ces options alors que vous pouvez simplement choisir un bon mot de passe.

Pour surmonter ce problème, j'ai exécuté la commande suivante dans mysql: SHOW VARIABLES LIKE 'validate_password%' comme suggéré par @JNevill. Mon "validate_password_policy" a été défini sur Medium, avec d'autres éléments. Voici la capture d'écran de son exécution: Valider la politique de mot de passe

Le résultat est explicite. Pour un mot de passe valide (lorsque la stratégie de mot de passe est définie sur moyen):

  • Le mot de passe doit comporter au moins 8 caractères.
  • Le nombre de cas mixtes est de 1 (au moins une lettre en minuscule et une lettre en majuscule)
  • Le nombre est égal à 1
  • Le nombre minimum de caractères spéciaux est 1

Donc, un mot de passe valide doit obéir à la politique. Des exemples de mot de passe valide pour les règles ci-dessus peuvent être:

  • Student123 @
  • NINZAcoder 100 $
  • démoPass # 00

Vous pouvez choisir n'importe quelle combinaison à condition de respecter la politique.

Pour les autres "validate_password_policy" vous pouvez simplement rechercher les valeurs pour différentes options et choisir votre mot de passe en conséquence (je n'ai pas essayé de "HIGH" ).

0

Ce message d'erreur n'a rien à voir avec le mot de passe stocké dans votre table. Il se produit également si vous tapez (sur la console SQL)

"sélectionnez le mot de passe ('123456789')"

ou si 

"sélectionnez le mot de passe ('A123456789')"

ou si 

"sélectionnez le mot de passe ('A! 123456789')"

Si vous tapez 

"sélectionnez le mot de passe ('A! a123456789')"

alors ça va marcher. Utilisez simplement des gros + petits caractères, des caractères spéciaux et des chiffres pour créer votre mot de passe. 

Vous pouvez désactiver ces vérifications dans my.cnf, mais vous aurez alors un risque de sécurité!

dans [mysqld] ajouter:

validate_password_policy=LOW
validate_password_special_char_count=0
validate_password_length=0
validate_password_mixed_case_count=0
validate_password_number_count=0
0
Tino Bellmann

Le problème est que votre mot de passe ne correspond pas aux règles de validation du mot de passe. Vous pouvez simplement suivre les étapes ci-dessous pour résoudre votre problème.

Vous pouvez simplement voir la matrice de configuration de validation de mot de passe en tapant ci-dessous le code.

mysql-> SHOW VARIABLES LIKE 'validate_password%';

Ensuite, dans votre matrice, vous pouvez trouver ci-dessous des variables avec les valeurs correspondantes et y vérifier validate_password_length, validate_password_number_count et validate_password_policy.

Vérifiez les valeurs utilisées pour ces variables. Assurez-vous que votre validate_password_length ne soit pas supérieur à 6. Vous pouvez le définir à 6 à l'aide du code ci-dessous.

SET GLOBAL validate_password_length = 6;

Et ensuite, vous devez définir validate_password_number_count sur 0. Utilisez le code ci-dessous.

SET GLOBAL validate_password_number_count = 0;

Enfin, vous devez définir validate_password_policy sur low. Avoir cela comme Medium ou High ne permettra pas vos mots de passe moins sécurisés. Réglez-le sur low avec le code ci-dessous.

SET GLOBAL validate_password_policy=LOW;
0
Dushan