J'essaie de migrer une base de données avec Sequelize en travaillant avec MySQL 8.0.15, mais je ne suis pas en mesure de le faire. Je continue de recevoir ce message d'erreur.
ls /usr/lib64/mysql/plugin/component_v* /usr/lib64/mysql/plugin/component_validate_password.so
J'ai essayé toutes les solutions à ce problème. Le problème est que lorsque j'essaye de changer le mot de passe root MySQL, le message que je reçois est celui-ci:
mysql> INSTALL COMPONENT 'file://component_validate_password'; ERROR 3529 (HY000): Cannot load component from specified URN: 'file://component_validate_password'.
Ensuite, j'ai essayé de changer la politique de validation de mot de passe en suivant cette procédure p>
https: //dev.mysql .com / doc / refman / 5.6 / fr / validate-password-installation.html
puis MySQL s'est écrasé car il est obsolète. Ensuite, j'ai essayé celui-ci
https://dev.mysql.com/doc/refman/8.0/en/validate-password-installation.html
Ensuite, j'ai eu ceci
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
3 Réponses :
Si vous souhaitez utiliser l'authentification de style MySQL 5.x, il vous suffit généralement d'ajouter ceci à votre my.cnf
:
[mysqld] default_authentication_plugin=mysql_native_password
Faites ceci avant d'ajouter des utilisateurs. Utilisez uniquement les utilisateurs pour vous connecter via Sequelize, jamais root
.
Ça a marché!!!! mais une dernière chose pourquoi est-ce "Utilisez uniquement les utilisateurs pour se connecter via Sequelize, jamais root." @tadman?
Ce que je veux dire, c'est de ne pas utiliser "root" comme compte pour accéder à la base de données. Utilisez-le uniquement lors de l'ajout ou de la suppression d'autres utilisateurs, comme pour l'administration uniquement. Sequelize doit se connecter à l'aide d'un compte spécifique à ce projet ou à cette application qui ne dispose que des privilèges nécessaires, comme s'il est limité aux bases de données nécessaires à cette application. GRANT ALL PRIVILEGES ON app_db. *
par exemple.
s'est avéré que cela fonctionne pour un utilisateur et ne fonctionne toujours pas pour la racine. Je ne comprends toujours pas, mais pour l'instant c'est exactement ce dont j'ai besoin. Merci beaucoup
Cela ne s'applique qu'aux nouveaux utilisateurs, pas aux utilisateurs existants.
Ooh cela explique beaucoup de choses. Merci!
Si vous utilisez MySQL 8.0, https: //dev.mysql.com/doc/refman/5.6/en/validate-password-installation.html alors cela ne devrait pas fonctionner.
Avez-vous utilisé mysql_secure_installation et installé le validate_password_component alors?
Si oui, dans ce cas, le plugin doit déjà être installé et tout ce que vous avez à faire est de définir les paramètres liés à validate_password dans le fichier d'options (par défaut /etc/my.cnf) et certaines options nécessitent un redémarrage du serveur. p>
Pour ceux qui ne peuvent pas modifier les variables système (par exemple, si vous utilisez une base de données gérée dans AWS ou DigitalOcean), cela fonctionne également:
DROP USER 'foo'@'bar'; CREATE USER 'foo'@'bar' IDENTIFIED WITH mysql_native_password BY 'password'; GRANT INSERT, SELECT, ... ON mydb.* TO 'foo'@'bar';
Ou, si vous ne pouvez pas exécuter privilèges de vidage;
comme moi:
ALTER USER 'foo'@'bar' IDENTIFIED WITH mysql_native_password BY 'password'; flush privileges;