web-dev-qa-db-fra.com

Comment créer un mot de passe de six caractères dans MySQL 5.7

Je dois créer un utilisateur avec un mot de passe de six caractères dans le nouveau MySQL sur mon mac. Je sais que le réglage le plus bas de la version 5.7 n'autorise que huit caractères. Y a-t-il un moyen de contourner cela?

Je tape CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special'

Il génère l'erreur 

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
16
user3703723

Vous utilisez le plugin de validation password . Par défaut, il ne permet que 8 caractères et des mots de passe plus longs. Parce qu'il ne peut pas vérifier la valeur d'un hachage, @RiggsFolly a raison de dire que le pré-hachage du mot de passe fonctionnera.

Toutefois, si vous souhaitez modifier les options , vous devez définir la valeur de la variable système validate_password_length. Vous pouvez le faire dans le fichier de configuration ou:

SET GLOBAL validate_password_length=6;
8
miken32

Commencez par vous connecter avec mysql -u root -p et vérifiez les règles de stratégie actuelles en:

# SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_dictionary_file    |        |
| validate_password_length             | 5      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+

Ensuite, vous pouvez modifier l’une des variables ci-dessus à votre guise:

# SET GLOBAL validate_password_length = 5;
# SET GLOBAL validate_password_number_count = 0;
# SET GLOBAL validate_password_mixed_case_count = 0;
# SET GLOBAL validate_password_special_char_count = 0;

Enfin, vous pouvez créer une base de données et un utilisateur y accédant avec un mot de passe plus simple:

# CREATE DATABASE test1;
# GRANT ALL PRIVILEGES ON test1.* TO user1@localhost IDENTIFIED BY "pass1";
# FLUSH PRIVILEGES;

Après cela, vous pouvez vous connecter avec mysql -u user1 -p test1 en utilisant le mot de passe pass1

36
Alexander Farber

MySQL 5.7+ possède par défaut un système de validation Password. Si vous ne voulez pas vous conformer strictement à la stratégie et devez attribuer la vôtre, désactivez simplement la validation du mot de passe et redémarrez le processus mysqld.

Éditez le fichier my.cnf:

vi /etc/my.cnf

dans [mysqld]

validate-password=off

Enregistrez le fichier puis restart le processus

Sudo service mysqld restart
or
systemctl restart mysqld

puis changez le mot de passe racine en procédant comme suit et suivez les étapes pour ne pas lancer d'exception pour le mot de passe racine.

mysql_secure_installation
or
/usr/bin/mysql_secure_installation

Si vous utilisez installation pour le première fois et souhaitez connaître le mot de passe temporaire, utilisez ce qui suit pour trouver le mot de passe premier fois:

 grep 'temporary password' /var/log/mysqld.log

Faites-moi savoir vos commentaires sur le même, dans la boîte de commentaire ci-dessous.

5
Murtaza Kanchwala

Je crois que vous pouvez le contourner en utilisant un mot de passe pré-haché comme ceci: -

CREATE USER 'newsier'@'localhost' IDENTIFIED WITH mysql_native_password
       AS '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';

Mais cela signifie que vous devez hacher correctement la variable special avant de pouvoir définir un mot de passe que vous pourrez ensuite utiliser en version texte.

3
RiggsFolly

Il est possible de désactiver entièrement le mot de passe "plug-in" qui semble trop strict en exécutant ce qui suit: uninstall plugin validate_password

Si vous en avez besoin, vous pouvez le réactiver via: INSTALL PLUGIN validate_password SONAME 'validate_password.so'

Vous pouvez éventuellement le désactiver, définir votre mot de passe et le réactiver:

uninstall plugin validate_password;
CREATE USER 'newsier'@'localhost' IDENTIFIED BY 'special';
INSTALL PLUGIN validate_password SONAME 'validate_password.so';

Lectures complémentaires:

3
SeanDowney

Vérifier les règles de stratégie de mot de passe en cours par

SHOW VARIABLES LIKE 'validate_password%';

Définissez maintenant la nouvelle valeur de ces variables:

SET GLOBAL validate_password_length = 6 // that you like
SET GLOBAL validate_password_policy = 'LOW'
1
Subarata Talukder