web-dev-qa-db-fra.com

Impossible de se connecter à la base de données MySQL (en cours d'exécution sur WSL2) à partir de Windows Desktop Application "MySQL Workbench"

J'ai configuré MySQL sur le sous-système Windows pour Linux (version WSL2). Je suis relativement nouveau à MySQL, mais j'ai confirmé ce qui suit:

  • Ça marche (ps ax | grep mysqld retourne une valeur)
  • Il fonctionne sur l'hôte par défaut 127.0.0.1
  • Il fonctionne sur le port par défaut 3306

Pour vous connecter à la coquille MySQL, j'utilise la commande Sudo mysql -u root -p. Sans sudo, je suis incapable de me connecter à la coquille.

Je suppose que cette question a quelque chose à voir avec l'hôte que le service MySQL fonctionne, mais je n'ai aucune idée de la façon de changer et de vous connecter correctement. Vous trouverez ci-dessous une capture d'écran de la configuration de connexion dans MySQL Workbench.

enter image description here

Et ci-dessous est l'erreur que je reçois lorsque j'utilise les paramètres affichés et mon mot de passe utilisateur root utilisateur.

connect to mysql workbench 2

enter image description here

4
Zach Gollwitzer

S'avère, cela n'avait rien à voir avec WSL du tout, mais plutôt la méthode d'authentification pour l'utilisateur MySQL.

À la version 5.5.10 de MySQL, les utilisateurs ont la possibilité d'utiliser authentification auth_socket . Dans mon cas, j'ai utilisé le référentiel de Linux apt pour configurer et installer MySQL, ce qui a été défini comme méthode d'authentification par défaut, comme indiqué par la sortie de la commande suivante:

SELECT user,authentication_string,plugin,Host FROM mysql.user;

MySQL Workbench ne prend pas en charge ce type d'authentification et vous devez donc revenir à l'ancienne méthode d'authentification, mysql_native_password.

Pour ce faire, exécutez la commande suivante lorsqu'il est connecté en tant que root ou quel que soit l'utilisateur que vous essayez de vous connecter à MySQL Workbench avec:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';

Après cela, MySQL Workbench se connecte bien.

1
Zach Gollwitzer

En plus de créer un utilisateur et d'accorder un accès à localhost et en%, j'ai dû utiliser l'adresse IP interne pour Eth0 dans WSL. Je suis les instructions dans Comment se connecter à WSL MySQL à partir de Windows d'hôte . Cela a fonctionné pour moi.

0
Dariva

Je pense que vous connecter à un client SQL (SQLYOG, HeidisQL, etc.) à une base de données MARIADB (MYSQL) installée sur WSL2 (Windows 10) Il n'est pas nécessaire de modifier SGDBR config, voici ce que j'ai fait pour résoudre ce problème:

mysql> alter utilisateur 'racine' @ 'localhost' identifié par 'new_password';

Cette commande définira un mot de passe sur l'utilisateur root, c'est-à-dire ... Vous pouvez maintenant vous connecter à votre DB avec racine/[New_password]

J'espère que cela peut aider et fonctionne pour vous

Plus d'infos: https://mariadb.com/kb/en/authentication-plugin-unix-socket/

0
Mandien

J'ai eu des problèmes liés à MySQL en cours d'exécution dans WSL2 au début, mais je suis maintenant capable de vous connecter à l'instance WSL2 MySQL via localhost. Il vous suffit de vous assurer que MySQL écoute sur tous les ports qu'il effectue par défaut dans MySQL 8.

[mysql]
port=3307 # or any port you like
bind-address=0.0.0.0

MySQL WSL2 connection setup

[Testing connection from Mysql bench to Mysql running in WSL21

0
Lamin Barrow