Je connecte MySQL - 8.0 à MySQL Workbench et j'obtiens l'erreur ci-dessous:
Le plug-in 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?
Vous pouvez modifier le cryptage du mot de passe de l'utilisateur en modifiant l'utilisateur avec la commande ci-dessous Alter:
ALTER USER 'nom d'utilisateur' @ @ 'ip_address' IDENTIFIÉ AVEC mysql_native_password BY 'mot de passe';
OU
Nous pouvons éviter cette erreur en le faisant fonctionner avec un ancien plugin de mot de passe:
Commencez par changer le plug-in d'authentification dans fichier my.cnf pour Linux/my.ini dans Windows:
[mysqld]
default_authentication_plugin = mysql_native_password
Redémarrez le serveur mysql pour prendre en compte les modifications et essayez de vous connecter via MySQL avec n’importe quel client mysql.
Si vous n'arrivez toujours pas à vous connecter et obtenez l'erreur ci-dessous:
Unable to load plugin 'caching_sha2_password'
Cela signifie que votre utilisateur a besoin du plugin ci-dessus. Essayez donc de créer un nouvel utilisateur avec la commande create user ou grant après avoir modifié le plugin par défaut. alors le nouvel utilisateur a besoin du plugin natif et vous pourrez vous connecter à MySQL.
Merci
Remarque: pour MAC OS
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 my.ini comme suit:
[mysqld]
default_authentication_plugin = mysql_native_password
Redémarrez le serveur MySQL et ouvrez à nouveau le Workbench.
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 a fonctionné avec mysql-workbench-community-8.0.11-rc-winx64.msi
(de https://dev.mysql.com/downloads/workbench/ , onglet Communiqués de développement ).
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'installais MySQL sur mon PC Windows 10 à l'aide de " MySQL Web Installer " et je rencontrais le même problème lorsque j'essayais de me connecter à l'aide de MySQL Workbench. J'ai résolu le problème en reconfigurant le serveur à partir de la fenêtre du programme d'installation.
En cliquant sur l'option "Reconfigurer", cela vous permettra de reconfigurer le serveur. Cliquez sur "Suivant" jusqu'à atteindre "Méthode d'authentification".
Une fois sur cet onglet, utilisez la deuxième option "Utiliser la méthode d’authentification héritée (conserver la compatibilité MySQL 5.x)".
Gardez tout le reste tel quel et c'est comme ça que j'ai résolu mon problème.
comme ça?
docker run -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql --default-authentication-plugin=mysql_native_password
mysql -uroot --protocol tcp
https://github.com/GitHub30/docs/blob/change-default_authentication_plugin/mysql/stack.yml
ou Vous devez utiliser MySQL Workbench 8.0.11.
Ok, j'ai perdu beaucoup de temps, alors voici un résumé du 19 mars 2019
Si vous essayez spécifiquement d’utiliser une image Docker avec MySql 8 + , puis d’utiliser SequelPro pour accéder à votre base de données s'exécutant sur ce conteneur de menu fixe, vous n'avez pas de chance.
Voir le numéro de sequelpro 2699
Ma configuration est sequelpro 1.1.2 en utilisant docker desktop 2.0.3.0 (mac - mojave), et a essayé d’utiliser mysql: latest (v8.0.15).
Comme d'autres l'ont déjà signalé, l'utilisation de mysql 5.7 ne nécessite rien:
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7
Bien entendu, il est possible d’utiliser MySql 8+ sur le menu fixe, et dans cette situation (si nécessaire), les autres réponses fournies ici pour les problèmes de type caching_sha2_password
fonctionnent. Mais sequelpro est un NO GO avec MySql 8+
Finalement, j'ai abandonné sequelpro (un ami de confiance de retour en 2013-2014) pour installer plutôt DBeaver . Tout a fonctionné hors de la boîte. Pour docker, j'ai utilisé:
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:latest --default-authentication-plugin=mysql_native_password
Vous pouvez rapidement consulter les bases de données mysql en utilisant:
docker exec -it mysql1 bash
mysql -u root -p
show databases;
-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 la commande Invite, 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
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
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 à cet endroit est entrypoint.
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 |
+---+
Pour Windows 1,
[mysqld] default_authentication_plugin = mysql_native_password
Redémarrez le service MySQL
connectez-vous à MySQL en ligne de commande, exécutez les commandes suivantes dans MySQL
Créer un nouvel utilisateur
CREATE USER 'utilisateur' @ '' localhost 'IDENTIFIÉ PAR' mot de passe ';
Accordez tous les privilèges sur *. * À 'utilisateur' @ 'localhost';
Je faisais face au même problème et cela a fonctionné.
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 est 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'
Si vous obtenez cette erreur sur GitLab CI comme moi, il suffit de passer de la version la plus récente à la version 5.7;)
# .gitlab-ci.yml
rspec:
services:
# - mysql:latest (I'm using latest version and it causes error)
- mysql:5.7 #(then I've changed to this specific version and fix!)
Pour moi, cela a commencé parce que sur un projet, j’utilisais Docker image mysql: latest (qui était la version 5 et qui fonctionnait bien), et lors d’une version ultérieure, la dernière version a été passée à la version 8, et a cessé de travailler . Je a changé mon image en mysql: 5 et j'étais (ne reçois plus cette erreur .
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 hibernation 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';
MySQLWorkbench 8.0.11 pour macOS résout ce problème. Je peux établir une connexion avec l'instance mysql protégée par mot de passe root s'exécutant dans docker.
Cette erreur survient lorsque l'outil utilisé n'est pas compatible avec MySQL8. Essayez de mettre à jour votre logiciel vers la dernière version de MySQL Workbench for MySQL8.
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';
se référer: https://stackoverflow.com/a/49228443/6097074
Merci.
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 solution ci-dessous a fonctionné pour moi
Allez dans Mysql Workbench -> Serveur-> Utilisateurs et privilèges 1.Cliquez sur Ajouter un compte.
2.Under Login Onglet fournit de nouveaux détails et veillez à choisir le type d'authentification comme standard et à choisir les rôles administratifs et les privilèges de schéma respectifs.
Si vous essayez de vous connecter à un serveur MySQL à partir d'un client MySQL en mode texte à partir d'un autre ordinateur (que ce soit Docker ou non)
La plupart des réponses ici concernent la connexion à partir d'un client de bureau ou vous demandent de passer à une méthode d'authentification plus ancienne. Si vous le connectez au client MySQL (en mode texte), je l’ai fait fonctionner avec un bus Debian dans un conteneur Docker.
Supposons que vous avez le système apt et que vous êtes configuré, procédez comme suit:
Sudo apt-get update
Sudo apt-get install lsb-release -y
Sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
et sélectionnez les options souhaitées. Dans mon cas, je n'ai besoin que de MySQL Tools & Connectors
pour être activé.Sudo apt-get update
Sudo apt-get install mysql-client -y
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