Il semble que j’ai chargé par inadvertance le plug-in de validation de mot de passe dans MySQL 5.7. Ce plugin semble obliger tous les mots de passe à se conformer à certaines règles.
Je voudrais désactiver ceci.
J'ai essayé de changer la variable validate_password_length comme suggéré ici en vain.
mysql> SET GLOBAL validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'app' = PASSWORD('abcd');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
Je voudrais soit décharger le plugin ou le stériliser en quelque sorte.
Voici ce que je fais pour supprimer le plugin validate password:
mysql -h localhost -u root -p
uninstall plugin validate_password;
Je ne recommanderais pas cette solution pour un système de production. J'ai utilisé cette solution sur une instance mysql locale à des fins de développement uniquement.
En vous basant sur la réponse de Sharfi, éditez le fichier /etc/my.cnf et ajoutez simplement cette ligne:
validate_password_policy=LOW
Cela devrait suffisamment neutraliser la validation demandée par le PO. Vous voudrez probablement redémarrer mysqld après cette modification. Selon votre système d'exploitation, cela ressemblerait à quelque chose comme:
Sudo service mysqld restart
validate_password_policy prend les valeurs 0, 1 ou 2 ou les mots LOW, MEDIUM et STRONG qui correspondent à ces nombres. La valeur par défaut est MEDIUM (1), ce qui nécessite des mots de passe contenant au moins une lettre majuscule, une lettre minuscule, un chiffre et un caractère spécial, et dont la longueur totale du mot de passe est d'au moins 8 caractères. Passer à LOW, comme je le suggère ici, vérifie uniquement la longueur. Si elle n’a pas été modifiée via d’autres paramètres, elle vérifie une longueur de 8. Si vous souhaitez également réduire cette longueur, vous pouvez également ajouter validate_password_length dans le fichier my.cnf.
Pour plus d'informations sur les niveaux et les détails, voir le doc mysql .
Pour MySQL 8, la propriété "validate_password_policy" a été remplacée par "validate_password.policy". Voir le document mis à jour mysql pour les dernières informations.
J'utilise MySQL v 8.0.12 et la commande pour le composant de validation de mot de passe désactiver est la suivante:
UNINSTALL COMPONENT 'file://component_validate_password';
Pour le réinstaller, la commande est la suivante:
INSTALL COMPONENT 'file://component_validate_password';
Si vous voulez juste changer la politique du plugin de validation de mot de passe:
SET GLOBAL validate_password.policy = 0; // For LOW
SET GLOBAL validate_password.policy = 1; // For MEDIUM
SET GLOBAL validate_password.policy = 2; // For HIGH
Pour désactiver les contrôles de mot de passe dans mariadb-10.1.24 (Fedora 24), je devais commenter une ligne dans /etc/my.cnf.d/cracklib_password_check.cnf file:
;plugin-load-add=cracklib_password_check.so
puis redémarrez le service mariadb:
systemctl restart mariadb.service
Suite à la réponse de ktbos:
J'ai modifié le fichier mysqld.cnf et mysql n'a pas pu démarrer ..__ Il s'est avéré que je modifiais le mauvais fichier!
Assurez-vous donc que le fichier que vous modifiez contient des balises de segment telles que [mysqld_safe] et [mysqld]. Sous ce dernier j'ai fait comme suggéré et ajouté la ligne:
validate_password_policy=LOW
Cela a parfaitement fonctionné pour résoudre mon problème de ne pas nécessiter de caractères spéciaux dans le mot de passe.
Si vous voulez faire des exceptions, vous pouvez appliquer le "hack" suivant. Il nécessite un utilisateur avec DELETE
et INSERT
privilege pour la table système mysql.plugin
.
uninstall plugin validate_password;
SET PASSWORD FOR 'app' = PASSWORD('abcd');
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
Clause de non-responsabilité concernant la sécurité: réfléchissez à la raison pour laquelle vous raccourcissez ou simplifiez votre mot de passe et envisagez peut-être de le remplacer par un autre plus complexe. Cependant, je comprends les moments "il est 3 heures du matin et a juste besoin de travailler", assurez-vous simplement de ne pas construire un système de piratage informatique, de peur que vous ne soyez piraté
Désinstaller:
mysql> uninstall plugin validate_password;
Un plugin désinstallé n'est pas affiché par show plugins;
Installer:
mysql> install plugin validate_password SONAME 'validate_password.so';
Désactivé par configuration:
[mysqld]
validate_password = OFF
Un plugin peut être désactivé par configuration uniquement s'il est installé.
J'avais un problème sur Ubuntu 18.04 sur Mysql. Lorsque j'avais besoin de créer un nouvel utilisateur, la stratégie était toujours élevée.
La façon dont j'ai déterminé comment désactiver, pour les futurs collègues qui viennent enquêter, était réglée sur faible.
Connectez-vous au serveur mysql en tant que root
mysql -h localhost -u root -p
Définir le nouveau type de validation
SET GLOBAL validate_password_policy=0; //For Low
Redémarrer mysql
Sudo service mysql restart
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'organizer'@'localhost' WITH GRANT OPTION;
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'organizer'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
pas besoin d'arrêter/démarrer mysql