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:
ps ax | grep mysqld
retourne une valeur)127.0.0.1
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.
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.
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.
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.
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/
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
[