Jim*_*unn 9 mysql mysql-workbench windows-10 windows-subsystem-for-linux
我有一个全新的 WSL2,运行在最新的 Windows 10(2004)上,安装了 Ubuntu 20.04,MySQL,我可以从 Bash 访问它并获取状态——
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
Run Code Online (Sandbox Code Playgroud)
接下来我想连接 MySQL Workbench。我得到的只是
Your connection failed for user 'root' to the MySQL server at 127.0.0.1:3306
Access denied for user 'root'@'localhost'
Run Code Online (Sandbox Code Playgroud)
我的 WSL2 列表是 ---
PS C:\Users\gymdo> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
Run Code Online (Sandbox Code Playgroud)
我的 WSL2 信息是 ---
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.
Run Code Online (Sandbox Code Playgroud)
我尝试使用上面的 172.20.109.28 --- 同样的错误
从 Windows 端看它 ---
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 . . . . . . . . . :
Run Code Online (Sandbox Code Playgroud)
我曾尝试使用上面的 172.20.96.1 --- 同样的错误
一件奇怪的事情是 --- 当我尝试使用 root@localhost 的用户名而不是简单的 root 时,工作台会弹出“输入密码”弹出窗口。我很兴奋,但是当我将密码字段留空时,它仍然失败并显示密码:NO
我是一个被打败的人——我需要帮助。
小智 7
我在 WSL 2 MySQL-Server 上遇到了同样的问题;我通过用localhost替换工作台连接配置中的127.0.0.1来修复它。
127.0.0.1 配置
本地主机配置
我希望它对某人有用!
小智 7
问题是如何对 root 用户进行身份验证。默认情况下,设置为使用 auth_socket 而不是 mysql_native_password。
以 root 用户身份登录 wsl 中的 mysql 服务器并运行:
mysql > SELECT user, authentication_string, plugin, host FROM mysql.user;
Run Code Online (Sandbox Code Playgroud)
输出将列出每个用户的身份验证方法。
现在使用以下命令更改 root 用户的方法:
mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Run Code Online (Sandbox Code Playgroud)
确保将“密码”更改为 root 用户的正确密码。
现在运行命令来更新更改:
mysql > FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
现在再次运行命令以确保身份验证方法已更新:
mysql > SELECT user, authentication_string, plugin, host FROM mysql.user;
Run Code Online (Sandbox Code Playgroud)
现在输出应该显示 root 用户的身份验证方法是使用 mysql_native_password。您现在应该能够使用密码以 root 用户身份登录工作台。
经过更多搜索后,我发现了我可能需要授予访问权限的提示。我从 WSL2 框中添加了一个新用户并授予了访问权限。
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)
Run Code Online (Sandbox Code Playgroud)
在此处查看页面下方的示例。
我现在可以通过 MySQL Workbench 与MySQL Workbench 中的用户: newguy和密码:ratfink进行连接。我无法授予root访问权限。我什至尝试删除 root 用户并重新添加 root,但没有成功。我想不应该扰乱大自然。
归档时间: |
|
查看次数: |
11016 次 |
最近记录: |