mysql - cannot - unable to load authentication plugin caching_sha2_password




Le plugin d'authentification 'caching_sha2_password' ne peut pas être chargé (17)

Je connecte MySQL - 8.0 à MySQL Workbench et j'obtiens l'erreur ci-dessous:

Le plugin d'authentification 'caching_sha2_password' ne peut pas être chargé: dlopen (/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image introuvable

J'ai aussi essayé avec un autre outil client.

Une solution pour ça?


-Open MySQL Command Line Client

-Créer un nouvel utilisateur avec un nouveau laissez-passer

Considérant un exemple de chemin d'accès à un dossier bin en haut, voici le code que vous devez exécuter dans l'invite de commande, ligne par ligne:

cd C:\Program Files\MySQL\MySQL Server 5.7\bin
MySQL -u root -p    
current password...***  
CREATE USER 'nativeuser'@'localhost'  
IDENTIFIED WITH mysql_native_password BY 'new_password';

-Ensuite, vous pouvez accéder à nouveau à Workbench (vous devriez pouvoir le faire après avoir créé une nouvelle connexion localhost et utilisé les nouvelles informations d'identification pour commencer à utiliser le programme).

Configurez une nouvelle connexion à l'hôte local avec le nom d'utilisateur mentionné ci-dessus (utilisateur natif), connectez-vous à l'aide du mot de passe (new_password).

Courtesy: UDEMY FAQ répond par l'équipe Career365


Actuellement (2018/04/23), vous devez télécharger une version de développement . Les GA ne fonctionnent pas.

Je ne pouvais pas me connecter avec la dernière version de GA (6.3.10).

Cela fonctionnait avec mysql-workbench-community-8.0.11-rc-winx64.msi (à partir de https://dev.mysql.com/downloads/workbench/ , onglet Development Releases ).


J'ai eu le même problème, mais la réponse d'Aman Aggarwal ne fonctionnait pas pour moi avec un conteneur Docker exécutant mysql 8.X. Je me suis connecté dans le conteneur

docker exec -it CONTAINER_ID bash

puis connectez-vous à mysql en tant que root

mysql --user=root --password

Entrez le mot de passe pour root (la valeur par défaut est 'root') Enfin, exécutez:

ALTER USER 'username' IDENTIFIED WITH mysql_native_password BY 'password';

Vous êtes tous ensemble.


J'ai résolu ce problème en installant MySQL 5.7:

Étape 1 - Activer le référentiel MySQL

Tout d’abord, vous devez activer le référentiel yum de la communauté MySQL 5.7 sur votre système. Les paquets rpm pour la configuration du référentiel yum sont disponibles sur le site officiel de MySQL. Utilisez la commande ci-dessous selon la version de votre système d'exploitation.

Sur CentOS et RHEL 7

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

Sur CentOS et RHEL 6

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm

Sur Fedora 27

dnf install https://dev.mysql.com/get/mysql57-community-release-fc27-9.noarch.rpm

Sur Fedora 26

dnf install https://dev.mysql.com/get/mysql57-community-release-fc26-9.noarch.rpm

Sur Fedora 25

dnf install https://dev.mysql.com/get/mysql57-community-release-fc25-9.noarch.rpm

Étape 2 - Installez le serveur MySQL 5.7

Comme vous avez activé avec succès le référentiel MySQL yum sur votre système. Installez maintenant le serveur de communauté MySQL 5.7 à l’aide des commandes suivantes, en fonction de la version de votre système d’exploitation.

Sur CentOS et RHEL 7/6

yum install mysql-community-server

Sur Fedora 27/26/25

 dnf install mysql-community-server

source: https://tecadmin.net/install-mysql-5-7-centos-rhel/


Je l'ai trouvé

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';

n'a pas fonctionné par lui-même. J'avais aussi besoin de mettre

[mysqld]
    default_authentication_plugin=mysql_native_password

dans /etc/mysql/mysql.conf.d/mysqld.cnf sous Ubuntu 18.04 sous PHP 7.0


La restauration des installations précédentes (sur MySQL Community Server 5.7 et Workbench 6.1) et la configuration de nouveaux identifiants MySQL ont fonctionné pour moi!


Le téléchargement d'une version de développement de 8.0.11-rc a fonctionné pour moi sur un mac. avec les commandes suivantes de docker:

docker run --name mysql -p 3406:3306 -e MYSQL_ROOT_PASSWORD=mypassword -d mysql

MySQLWorkbench 8.0.11 pour macOS résout ce problème. Je peux établir une connexion avec l'instance mysql protégée par un mot de passe root s'exécutant dans docker.


Ouvrez ma commande SQL promt:

puis entrez le mot de passe mysql

enfin utiliser:

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';

voir: https://.com/a/49228443/6097074

Merci.


Pour ceux qui utilisent Docker ou Docker Compose, j'ai rencontré cette erreur car je n'avais pas défini la version de l'image MySQL. Docker tentera automatiquement d’obtenir la dernière version, la 8.

J'ai mis MySQL à 5.7 et j'ai reconstruit l'image. Cela a fonctionné normalement:

version: '2'
services: 
  db:
   image: mysql:5.7

Presque comme les réponses ci-dessus, mais peut-être dans des requêtes simples, je recevais cette erreur dans mon application de démarrage de printemps avec hibernate après la mise à niveau de MySQL. Nous avons créé un nouvel utilisateur en exécutant les requêtes ci-dessous sur notre base de données. Je pense que c'est un moyen temporaire d'utiliser sha256_password au lieu de la dernière et bonne authentification caching_sha2_password.

CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pa$$word';

GRANT ALL PRIVILEGES ON * .* TO 'username'@'localhost';

Remarque: pour MAC OS

  1. Ouvrez MySQL depuis Préférences Système> Initialiser la base de données>
  2. Tapez votre nouveau mot de passe.
  3. Choisissez 'Utiliser l'ancien mot de passe'
  4. Redémarrez le serveur.
  5. Connectez maintenant le MySQL Workbench


Voici la solution qui a fonctionné pour moi après l’installation de MySQL 8.0 sous Windows 10.

Supposons que le nom d'utilisateur MySQL soit root et le mot de passe admin

Ouvrez l'invite de commande et entrez les commandes suivantes:

cd C: \ Program Files \ MySQL \ Serveur MySQL 8.0 \ bin

mysql_upgrade -uroot -padmin

mysql -uroot -padmin

ALTER USER 'root' @ 'localhost' IDENTIFIÉ AVEC mysql_native_password BY 'admin'


Voici ma définition de base de données dans mon menu fixe:

dataBase:
    image: mysql:8.0
    volumes:
        - db_data:/var/lib/mysql
    networks:
        z-net:
            ipv4_address: 172.26.0.2
    restart: always
    entrypoint: ['docker-entrypoint.sh', '--default-authentication-plugin=mysql_native_password']
    environment:
        MYSQL_ROOT_PASSWORD: supersecret
        MYSQL_DATABASE: zdb
        MYSQL_USER: zuser
        MYSQL_PASSWORD: zpass
    ports:
        - "3333:3306"

La ligne pertinente est le point d' entrée .

Après l'avoir construit et mis en place, vous pouvez le tester avec:

$ mysql -u zuser -pzpass --host=172.26.0.2  zdb -e "select 1;"
Warning: Using a password on the command line interface can be insecure.
+---+
| 1 |
+---+
| 1 |
+---+


vous pouvez modifier le cryptage du mot de passe comme ceci.

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';

Pour Windows 10: ouvrez l'invite de commande

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

C:\Program Files\MySQL\MySQL Server 8.0\bin> mysql -u root -p
Enter password: *********

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newrootpassword';
Query OK, 0 rows affected (0.10 sec)

mysql> exit

Vous pouvez également modifier la configuration de my.ini comme suit:

[mysqld]

default_authentication_plugin = mysql_native_password

Redémarrez le serveur MySQL et ouvrez à nouveau le Workbench.





mysql-8.0