首页 > 解决方案 > 无法从 Windows 桌面应用程序“MySQL Workbench”连接到 MySQL 数据库(在 WSL2 上运行)

问题描述

我在适用于 Linux 的 Windows 子系统(WSL2 版本)上设置了 MySQL。我对 MySQL 比较陌生,但我已经确认了以下几点:

要登录 mysql shell,我使用命令sudo mysql -u root -p. 没有 sudo,我无法登录到 shell。

我认为这个问题与运行 MySQL 服务的主机有关,但我不知道如何更改它并正确连接。下面是 MySQL Workbench 中连接设置的屏幕截图。

在此处输入图像描述

以下是我使用显示的设置和我的root用户密码时遇到的错误。

连接到 mysql 工作台 2

在此处输入图像描述

标签: mysql-workbenchwindows-subsystem-for-linux

解决方案


事实证明,这根本与 WSL 无关,而是 MySQL 用户的身份验证方法。

从 MySQL 5.5.10 版开始,用户可以使用auth_socket authentication。就我而言,我使用 Linuxapt存储库来配置和安装 MySQL,并将其设置为默认身份验证方法,如以下命令的输出所示:

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

MySQL Workbench 不支持这种类型的身份验证,因此,您必须恢复到旧的身份验证方法,mysql_native_password.

为此,请在以 身份登录时运行以下命令root,或者以任何您尝试连接到 MySQL Workbench 的用户身份运行以下命令:

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

之后,MySQL 工作台连接正常。


推荐阅读