我在适用于 Linux 的 Windows 子系统(WSL2 版本)上设置了 MySQL。我对 MySQL 比较陌生,但我已经确认了以下几点:
- 它正在运行(
ps ax | grep mysqld
返回一个值)
- 它在默认主机上运行
127.0.0.1
- 它在默认端口上运行
3306
要登录 mysql shell,我使用命令sudo mysql -u root -p
。如果没有 sudo,我将无法登录 shell。
我认为这个问题与运行 MySQL 服务的主机有关,但我不知道如何更改它并正确连接。下面是 MySQL Workbench 中连接设置的屏幕截图。
下面是我使用所示设置和我的设置时遇到的错误root
用户密码。
事实证明,这与 WSL 完全无关,而与 MySQL 用户的身份验证方法有关。
从 MySQL 5.5.10 版本开始,用户可以使用auth_socket认证。就我而言,我使用的是 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 Workbench 连接正常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)