9 votos

Conectar MySQL Workbench a WSL2

Tengo un WSL2 nuevo, corriendo en el último Windows 10 (2004) con Ubuntu 20.04, MySQL instalado, puedo acceder a él desde Bash y obtener el estado --

mysql> status
--------------
mysql  Ver 8.0.20-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

Connection id:          10
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.20-0ubuntu0.20.04.1 (Ubuntu)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /var/run/mysqld/mysqld.sock
Binary data as:         Hexadecimal
Uptime:                 13 sec

A continuación quiero conectarme con MySQL Workbench. Todo lo que obtengo es

Your connection failed for user 'root' to the MySQL server at 127.0.0.1:3306
Access denied for user 'root'@'localhost'

Mi lista de WSL2 es ---

PS C:\Users\gymdo> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2

Mi información de WSL2 es ---

Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04 LTS (GNU/Linux 4.19.104-microsoft-standard x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sat Jun 13 02:35:32 EDT 2020

  System load:  1.97               Processes:             8
  Usage of /:   0.4% of 250.98GB   Users logged in:       0
  Memory usage: 0%                 IPv4 address for eth0: 172.20.109.28
  Swap usage:   0%

0 updates can be installed immediately.
0 of these updates are security updates.

He intentado utilizar el 172.20.109.28 de arriba --- mismo error

Mirando desde el lado de Windows con ---

Ethernet adapter vEthernet (WSL):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::c54a:f83c:a5f8:40b2%43
   IPv4 Address. . . . . . . . . . . : 172.20.96.1
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . :

He tratado de usar el 172.20.96.1 de arriba --- el mismo error

Una cosa extraña es --- cuando pruebo el nombre de usuario de root@localhost en lugar de simplemente root, el banco de trabajo hace aparecer la ventana emergente de "introducir contraseña". Tan emocionado estaba, pero cuando dejo el campo de la contraseña en blanco sigue fallando con la contraseña: NO

Soy un hombre abatido, necesito ayuda.

0 votos

¿Cómo se inicia MySQL en Ubuntu? ¿Se inicia con sudo mysql o mysql -u root -p ?

0 votos

Desde dentro de la caja de WSL2 lo inicio con: $ service mysql start entonces accedo con: $ mysql -uroot

0 votos

¿Utiliza usted sudo antes de mysql -uroot ? ¿Está su contraseña en blanco?

7voto

Clém Puntos 71

Tuve el mismo problema con WSL 2 MySQL-Server; lo solucioné sustituyendo 127.0.0.1 en la configuración de la conexión del banco de trabajo con localhost .

127.0.0.1 config

Failed to connect error with Hostname: 127.0.0.1

Configuración de Localhost

successful connection with Hostname: localhost

¡Espero que le sirva a alguien!

0 votos

Estoy en WSL 1 y esperaba que esto funcionara, pero no fue así. Tampoco entiendo por qué "localhost" o 127.0.0.1 sería apropiado para el nombre de host en lugar de una dirección IP encontrada en la salida de ifconfig ejecutado desde el WSL.

4voto

Jim Dunn Puntos 41

Después de buscar un poco más he encontrado indicios de que podría necesitar conceder acceso. Desde la caja de WSL2 añadí un nuevo usuario y le di acceso.

mysql> CREATE USER 'newguy'@'localhost' IDENTIFIED BY 'ratfink';
Query OK, 0 rows affected (0.02 sec)

mysql> GRANT ALL ON mysql.* TO 'newguy'@'localhost';
Query OK, 0 rows affected (0.01 sec)

Consulte los ejemplos de la parte inferior de la página aquí.

Ahora puedo conectarme a través de MySQL Workbench con el usuario: newguy y la contraseña: ratfink de MySQL Workbench. Tengo no ha podido conceder acceso a root . Incluso he probado a quitar el root como usuario y volver a ponerlo sin éxito. No hay que meterse con la madre naturaleza supongo.

0 votos

Esto no me ha funcionado, ni siquiera después de haber limpiado los privilegios, e incluso si cambio el nombre de host de mi IP de la LAN a "localhost" o 127.0.01.

1voto

type_outcast Puntos 130

El problema es cómo se autentifica el usuario root. Por defecto está configurado para usar auth_socket en lugar de mysql_native_password.

Entra en el servidor mysql en wsl como usuario root y ejecuta:

mysql > SELECT user, authentication_string, plugin, host FROM mysql.user;

La salida mostrará el método de autenticación para cada usuario.

Ahora cambia el método para el usuario root con el siguiente comando:

mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Asegúrate de cambiar 'password' por la contraseña correcta para el usuario root.

Ahora ejecute el comando para actualizar los cambios:

mysql > FLUSH PRIVILEGES;

Ahora ejecute el comando de nuevo para asegurarse de que el método de autenticación se ha actualizado:

mysql > SELECT user, authentication_string, plugin, host FROM mysql.user;

Ahora la salida debería mostrar que el método de autenticación para el usuario root es con mysql_native_password. Ahora debería ser capaz de iniciar la sesión en el banco de trabajo como usuario root utilizando la contraseña.

0 votos

¡¡¡FUNCIONÓ PERFECTAMENTE!!! ¡¡¡GRACIAS!!!

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X